[請益] 如何用for迴圈搭配mean取出影像值

看板MATLAB作者時間7年前 (2017/05/31 23:47), 7年前編輯推噓2(2011)
留言13則, 5人參與, 最新討論串1/2 (看更多)
如題,假設我目前有五張影像分別為a1,a2,a3,a4,a5 我想利用mean找出影像中大於0的各點數值之平均例如 a1_mean = mean(a1(find(a1>0))); a2_mean = mean(a2(find(a2>0))); . . . a5_mean = mean(a5(find(a5>0))); 不想一張一張做 嘗試了幾種for迴圈的寫法但是都不對,想請問該如何解決 謝謝各位! ------------------------------------------------------------- 目前改成這樣 for j = 1:5 k=num2str(j); AA=cat(3,['a',num2str(k)]); a5_mean=mean(AA(find(AA>0))); end 數值有跑出來了,但是對照a5執行後的數值跟我原先用手動輸入的不同@@ 不知道是哪裡的問題 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.125.96.131 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1496245628.A.9C7.html

06/01 09:51, , 1F
你把a1改成陣列a(I)就好啦
06/01 09:51, 1F

06/01 12:55, , 2F
eval ?
06/01 12:55, 2F

06/01 13:21, , 3F
有試過寫成mean(eval(['a',num2str(j),'']
06/01 13:21, 3F

06/01 13:23, , 4F
(find(eval(['a',num2str(j),'']>0))); 但還是不對@@
06/01 13:23, 4F

06/01 14:46, , 5F
灰階影像是二維矩陣,因此你最少要寫成 mean(mean(Img))
06/01 14:46, 5F

06/01 14:46, , 6F
或是一樓所說的格式.
06/01 14:46, 6F

06/01 14:46, , 7F
mean( Img(:) )
06/01 14:46, 7F

06/01 18:12, , 8F
a = (a1, a2,...,an) 然後work on a
06/01 18:12, 8F
※ 編輯: LPD666 (140.125.96.131), 06/01/2017 20:34:44

06/01 21:14, , 9F
為什麼k要num2str兩次?
06/01 21:14, 9F

06/03 01:24, , 10F
for i=1:4
06/03 01:24, 10F

06/03 01:24, , 11F
eval(['b=a' num2str(i) ';'])
06/03 01:24, 11F

06/03 01:24, , 12F
AA(i)=mean(b(b>0));
06/03 01:24, 12F

06/03 01:24, , 13F
end
06/03 01:24, 13F
文章代碼(AID): #1PBkLyd7 (MATLAB)
文章代碼(AID): #1PBkLyd7 (MATLAB)