无法到达此语句matlab,matlab的while语句无法执行

大家好,新人在这里向各路大神请教。我自己写了一小段的试验的代码,想通过 一定的关系式比较将矩阵中的每一个数值进行替换,代码在运行时,当矩阵是随机矩阵的时候,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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值