Re: [問題] 矩陣的取法問題已回收
※ 引述《zhewei (Chih-Wei)》之銘言:
: 標題: [問題] 矩陣的取法問題
: 時間: Fri Sep 19 01:07:16 2008
: 有一個矩陣A,大小為256*256
: 然後如果想要取出矩陣A中的某4*4的矩陣
: 指令可以打成A(i:i+4-1,j:j+4-1) 0<i<254 0<j<254
: 舉例來說 A(1:4,1:4)可以取出最左上方的4*4矩陣
: 問題來了
: 如果在A(1:4,1:4)裏頭這麼打!
: 可以讓程式知道,抓的是row 1:4 與 col 1:4的一個矩形
: 但如果將指令改成A([1:4,1:4])抓出來的資料,會變成index的方式來抓取A中的資料
: 因為現在A的維度是2維,我因為程式的需要
: A有可能會變成N維的陣列
: 利用程式,寫出[1:4, 1:4,...,N個]是很容易
: 只可惜這個沒辦法變成sub的方式來控制A中的資料
: 不曉得有沒有指令可以讓程式知道這個是sub[1:4, 1:4,...,N個]而不是index呢?
: _________________________________________________________________________
: 其實我要的效果,就很類似下列zeros指令一樣
: zeros(4,4,4),出來會是一個4*4*4的矩陣
: 但如果輸入zeros([4,4,4])出來也還會是一個4*4*4的矩陣
: 若這樣的寫法用在矩陣上就不行了,再麻煩大家了
: _________________________________________________________________________
: 我寫得很亂,形容的很差~
: 如果不知道我在寫些什麼,再麻煩大家推文告知哪裏寫得不清楚~謝謝大家了
: --
: ※ 發信站: 批踢踢實業坊(ptt.cc)
: ◆ From: 123.110.97.4
: 推 sunev:sub2ind ind2sub 或許可以用eval硬幹 09/19 03:04
: → zhewei:eval應該是可以硬幹~但可能會死人吧!= =" 09/19 04:21
後來想了想
就算用了sub2ind
也還是得用eval硬幹
所以就直接來吧
n = ndims(A);
ind = repmat('1:4,',1,n);
ind(end) = [];
ind = 'A([' + ind + '])';
eval(ind);
不曉得有沒有誤解你的意思
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.195.202.4
討論串 (同標題文章)
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章