Re: [問題] 矩陣的取法問題已回收

看板MATLAB作者 (Veritas)時間16年前 (2008/09/20 11:05), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《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
文章代碼(AID): #18r6XgFw (MATLAB)
討論串 (同標題文章)
文章代碼(AID): #18r6XgFw (MATLAB)