作者LPD666 ()
看板MATLAB
标题[请益] 如何用for回圈搭配mean取出影像值
时间Wed May 31 23:47:05 2017
如题,假设我目前有五张影像分别为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://webptt.com/cn.aspx?n=bbs/MATLAB/M.1496245628.A.9C7.html
1F:推 sppmg: 你把a1改成阵列a(I)就好啦 06/01 09:51
2F:→ YoursEver: eval ? 06/01 12:55
3F:→ LPD666: 有试过写成mean(eval(['a',num2str(j),''] 06/01 13:21
4F:→ LPD666: (find(eval(['a',num2str(j),'']>0))); 但还是不对@@ 06/01 13:23
5F:→ YoursEver: 灰阶影像是二维矩阵,因此你最少要写成 mean(mean(Img)) 06/01 14:46
6F:→ YoursEver: 或是一楼所说的格式. 06/01 14:46
7F:→ YoursEver: mean( Img(:) ) 06/01 14:46
8F:→ LiamIssac: a = (a1, a2,...,an) 然後work on a 06/01 18:12
※ 编辑: LPD666 (140.125.96.131), 06/01/2017 20:34:44
9F:→ LiamIssac: 为什麽k要num2str两次? 06/01 21:14
10F:推 sunev: for i=1:4 06/03 01:24
11F:→ sunev: eval(['b=a' num2str(i) ';']) 06/03 01:24
12F:→ sunev: AA(i)=mean(b(b>0)); 06/03 01:24
13F:→ sunev: end 06/03 01:24