大家好,新人在这里向各路大神请教。我自己写了一小段的试验的代码,想通过 一定的关系式比较将矩阵中的每一个数值进行替换,代码在运行时,当矩阵是随机矩阵的时候,while循环总是直接被跳过,无法执行,而当矩阵是单位阵或者是给定的数值矩阵,如a=[0.1 0.2 0.3 0.4 0.5;0.001 0.2 0.3 0.4 0.5;0.1 0.2 0.2 0.4 0.5],循环可以执行,结果也是正确的,不知道问题出现在哪里,在这里附上代码,想麻烦各位老师指点迷津,非常感谢!代码:
tic
clc;clear;
a=rand(6,5);
% a=[0.1 0.2 0.3 0.4 0.5;0.001 0.2 0.3 0.4 0.5;0.1 0.2 0.2 0.4 0.5];
[m,n]=size(a);
x=zeros(m,n); %存贮字符
x(:,1)=a(:,1);x(:,n)=a(:,n);
for j = 2:n-1
c=1;
if a(c,j) < a(c,j-1) & a(c,j+1)+a(c,j-1)< 2*a(c,j)
x(c,j)=3;
elseif a(1,j) < a(c,j-1) & a(c,j+1)+a(c,j-1)>=2*a(c,j)
x(c,j)=2;
elseif a(1,j) >= a(c,j-1) & a(c,j+1)+a(c,j-1)<2*a(c,j)
x(c,j)=1;
else a(1,j) >= a(c,j-1) & a(c,j+1)+a(c,j-1)>=2*a(c,j);
x(c,j)=0;
while j == n-1
% x(c,n)=a(c,n)
c=c+1;
if c < m+1
for j = 2:n-1
if a(c,j) < a(c,j-1) & a(c,j+1)+a(c,j-1)<2*a(c,j)
x(c,j)=3;
elseif a(1,j) < a(c,j-1) & a(c,j+1)+a(c,j-1)>=2*a(c,j)
x(c,j)=2;
elseif a(1,j) >= a(c,j-1) & a(c,j+1)+a(c,j-1)<2*a(c,j)
x(c,j)=1;
else a(1,j) >= a(c,j-1) & a(c,j+1)+a(c,j-1)>=2*a(c,j);
x(c,j)=0;
end
end
else
break
end
end
end
end
toc