matlab中为什么max报错,关于matlab 中while循环的问题?

关于matlab 中while循环的问题?

fid=fopen('7.img','rb');

cc=fread(fid,65536,'float64');

fclose(fid);

for i=1:256

for j=1:256

C(i,j)=cc((i-1)*256+j);

end

end

A=double(C);

maxmax=max(max(A));

minmin=min(min(A));

subplot(1,2,1),imshow(A,[minmin,maxmax]);title('原图');

%以上为读一个256*256的图像文件

B=zeros(256);

B(80,80)=1;

zonghe=A(80,80);

jishu=1;

junzhi=A(80,80);

%程序至此应该都没问题

fl=1;

while fl==1

{

fl=0;

%----------------------------------------------------------

%此处提示出错:Assignment statements do not produce results.(Use == to test for equality.)

for i=1:256

for j=1:256

if((B(i+1,j)==1||B(i-1,j)==1||B(i,j+1)==1||B(i,j-1)==1)&&B(i,j)==0&&fabs(junzhi-A(i,j))<10)

{

zonghe=zonghe+A(i,j);

B(i,j)=1;

fl=1;

jishu=jishu+1;

}

end

end

junzhi=zonghe/jishu;

end

}

for i=1:256

for j=1:256

D(i,j)=A(i,j)*B(i,j);

end

end

maxmaxd=max(max(D));

minmind=min(min(D));

subplot(1,2,2),imshow(D,[minmind,maxmaxd]);title('结果图');

matlab的报错意思大概是说

fl=0;

这个不能出结果,要我用==

但我这里不是判断,是对fl重新赋值啊,matlab为什么不认?

我对matlab的语法还不是很熟悉,大多是凭C的感觉写的。

凌茜

发布

1个回答

67b0a70febe552c922c54bb8560d6ef6.png

85082d8854a5249325331028d9cea94e.png

matlab最大的特点是矩阵运算快,最大的缺点是循环速度太慢。因此能够避免循环就尽量不用循环。

n=5;%一共5行,如果想多一点就把5改大一点

a=tril(ones(n,n*2-1),n-1);

a=a+fliplr(a)-1;

disp(char(a*'*'))

◆◆

评论读取中....

请登录后再发表评论!

◆◆

修改失败,请稍后尝试

精华知识

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值