a=randint(4,4,[1 2])%%标记图像矩阵
a =
2 2 2 2
1 2 1 2
2 1 2 1
1 1 2 1
b=rand(4,4)%%原图像矩阵
b =
0.9355 0.0579 0.1389 0.2722
0.9169 0.3529 0.2028 0.1988
0.4103 0.8132 0.1987 0.0153
0.8936 0.0099 0.6038 0.7468
>> n1=0;n2=0;sum1=0;sum2=0;%%初始化各个参数
>> for i=1:size(a,1)
for j=1:size(a,2)
if a(i,j)==1
sum1=sum1+b(i,j);%%累加第一个区域的各个像素值
n1=n1+1;
else
sum2=sum2+b(i,j);%%累加第二个区域的各个像素值
n2=n2+1;
end
end
end
>> mean1=sum1/n1%%第一个区域的像素平均值
mean1 =
0.5141
>> mean22=sum2/n2%%第二个区域的像素平均值
mean22 =
0.3521
假设2264个数据为列向量data,代码就可以这样子写~
data=reshape(data,65,[]);
junzhi=mean(data,2);
junzhi就是要求的值了
原始数据B、C列含有“,”,需要先行处理。
将数据粘贴到matlab目录下新建的pingjun.txt文档中。代码如下:
load pingjun.txt;
A=pingjun;
for i=1:12
for j=2:3
mean_l(i,j)=mean(A(find(A(:,1)==i),j));
end
end
以上回答你满意么?