[問題] 關於處理多維矩陣的問題已回收

看板MATLAB作者 (Keep on)時間14年前 (2011/06/22 20:55), 編輯推噓2(203)
留言5則, 2人參與, 最新討論串1/1
給定一個多維矩陣M(a,b,c) 其中a,b,c不完全皆相等 小弟想從M做最大值、最小值和平均值 EX. M(:,:,1) = [0 0 0; 0 0 0; 4 0 100]; M(:,:,2) = [0 0 0; 0 0 0; 2 0 100]; M(:,:,3) = [0 0 0; 2 1 50; 2 0 50]; M(:,:,4) = [0 0 0; 0 0 25; 5 0 75]; M(:,:,5) = [0 0 0; 0 0 25; 5 0 75]; 接著想從M中 每列的第一行取所有頁裡面的最大值 每列的第二行取所有頁裡面的最小值 每列的第三行取所有頁裡面的平均值 最後會得到ans = [0 0 0; 2 0 20; 5 0 80]; 小弟原本有想到用for來做 如下面的範例 a=5; c=5; ans=[]; for i = 1:a ans = [ans; max(M(i,1,:)) ... min(M(i,2,:)) ... sum(M(i,3,:))/c]; end 不過a和c其實是會變動的 且for的方式感覺不是很理想 想請問這樣的矩陣是否有更快處理數值的方法?? 謝謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 134.208.0.6 ※ 編輯: pen5472 來自: 134.208.0.6 (06/22 21:00)

06/22 21:31, , 1F
變數不要用ans,ans有特殊意義。
06/22 21:31, 1F

06/22 21:38, , 2F
max(squeeze(M(:,1,:),2) min(squeeze(M(:,2,:),2)
06/22 21:38, 2F

06/22 21:38, , 3F
mean(squeeze(M(:,3,:),2)
06/22 21:38, 3F

06/22 23:15, , 4F
括弧似乎有誤 修改一下 取mean無誤 取max和min有誤
06/22 23:15, 4F

06/22 23:16, , 5F
還是感謝回覆 小弟再試試看
06/22 23:16, 5F
文章代碼(AID): #1E0UP8uT (MATLAB)