我是靠谱客的博主 明亮故事,最近开发中收集的这篇文章主要介绍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*'*'))

◆◆

评论读取中....

请登录后再发表评论!

◆◆

修改失败,请稍后尝试

精华知识

最后

以上就是明亮故事为你收集整理的matlab中为什么max报错,关于matlab 中while循环的问题?的全部内容,希望文章能够帮你解决matlab中为什么max报错,关于matlab 中while循环的问题?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部