[讨论] 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