[討論] Cell中每個資料矩陣的非零值求法

作者: LSgay5566 (麗萱小妹)   2017-01-14 14:55:09
大家好~
想請問一個問題,我最近因為資料處理的關係,先把都是同樣大小的矩陣存在cell中
接著要判斷每一個cell中的矩陣數值為何並且相加計算方均根
我的code如下
for i = 1:100
I{i} = graypic_imadjust(row,cow) ;
every_I(i) = sqrt(mean(find(I{i}).^2)) ;
end
但是算出來的數值都非常奇怪,回去看我的變數發現是find(I{i})這裡出問題了
假設我的I{1}= 1 23 0 0 0 0 0
12 0 0 23 0 0 0
2 9 1 0 0 0 1
原本預期find(I{1})出來要是1 23 12 23 2 9 1 1
但是出來的數字卻不對
想問問看是哪裡出錯了,拜託各位了><
作者: sunev (Veritas)   2017-01-14 17:19:00
find給出來的是位置,不是值
作者: LSgay5566 (麗萱小妹)   2017-01-14 21:21:00
哦哦哦好的~那想請問有什麼辦法求非零值呢><
作者: mp19990920 (郝渴連)   2017-01-14 23:14:00
cell內所有東東都做相同事情請把迴圈去掉改用cellfun你預計要的find(I{i})是I{i}(I{i}~=0)所以程式如下所示:f = @(x) sqrt(mean( x(x~=0) ));every_I = cellfun(@f, I);更正,是 every_I = cellfun(f, I);或是 cellfun(@(x) sqrt(mean( x(x~=0) )), I);

Links booklink

Contact Us: admin [ a t ] ucptt.com