matlab中如何把数据输出成一个矩阵?

2024-12-12 22:19:41
推荐回答(3个)
回答1:

D=[1 5 3 6;0 5 8 5;5 3 1 0;7 3 0 5];
[m n]=size(D);
s=zeros(m-2,n-2);
A=zeros(m-2,n-2);
for i=2:m-1;
for j=2:n-1;
A=[D(i-1,j),D(i,j-1),D(i,j+1),D(i+1,j)];
s(i-1,j-1)=length(find(A==5));
end
end
s
按上面语句试试

回答2:

D=[1 5 3 6;0 5 8 5;5 3 1 0;7 3 0 5];
[m n]=size(D);
s=zeros(m-2,n-2);
A=zeros(m-2,n-2);
for i=2:m-1;
for j=2:n-1;
A=[D(i-1,j),D(i,j-1),D(i,j+1),D(i+1,j)];
s(i-1,j-1)=length(find(A==5));
end
end
s

回答3:

[m,n]=size(A);
D=zeros(m,n);
for i=2:m-1;
for j=2:n-1;
seg=A(i-1:i+1,j-1:j+1);
seg(2,2)=0;
D(i,j)=length(find(seg==5))
end
end
% A内部每个数的周围5的个数显示在D中的对应的位置。

以上只能找A内部数的结果,但是没有找A的边界的数。
如果也要边界的数的个数,用下面的:
[m,n]=size(A);

M=zeros(m+2,n+2);
M(2:end-1,2:end-1)=A;
D=zeros(m,n);
for i=2:m+1;
for j=2:n+1;
seg=M(i-1:i+1,j-1:j+1);
seg(2,2)=0;
D(i,j)=length(find(seg==5))
end
end