看板 MATLAB 關於我們 聯絡資訊
如題,假設我目前有五張影像分別為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
sppmg: 你把a1改成陣列a(I)就好啦 06/01 09:51
YoursEver: eval ? 06/01 12:55
LPD666: 有試過寫成mean(eval(['a',num2str(j),''] 06/01 13:21
LPD666: (find(eval(['a',num2str(j),'']>0))); 但還是不對@@ 06/01 13:23
YoursEver: 灰階影像是二維矩陣,因此你最少要寫成 mean(mean(Img)) 06/01 14:46
YoursEver: 或是一樓所說的格式. 06/01 14:46
YoursEver: mean( Img(:) ) 06/01 14:46
LiamIssac: a = (a1, a2,...,an) 然後work on a 06/01 18:12
※ 編輯: LPD666 (140.125.96.131), 06/01/2017 20:34:44
LiamIssac: 為什麼k要num2str兩次? 06/01 21:14
sunev: for i=1:4 06/03 01:24
sunev: eval(['b=a' num2str(i) ';']) 06/03 01:24
sunev: AA(i)=mean(b(b>0)); 06/03 01:24
sunev: end 06/03 01:24