我觉得前面回答的貌似已经可以了,难道你是想看到屏幕输出“y1=1;y2=4;y3=9;”,那你可以试试这个: for i=1:3 y(i)=i^2; fprintf(1,['y' num2str(i) '=%d;'],y(i)); end fprintf(1,'n'); 结果是: y1=1;y2=4;y3=9; >>

有时候在使用matlab的时候,想使用for循环,怎么使用呢?怎么使用呢?怎么使用呢?下面360新知带你一探究竟!

材料/工具

电脑MATLAB

可以定于好一个用来存储循环结果的数组,将每次循环的结果送到这个数组中。 例子: a=ones(1,10); for k=1:10 a(k)=k; end

方法

首先介绍一下matlab中for循环的格式,主要有两种格式,如图所示。

不是空的,赋值的时候出错了,我改了一点,不知道对你有用没。。 % clear;close all I=imread('1.jpg');%读入原始jpg格式图像 figure plot(1,1) imshow(I) W=size(I,2); %得到图像高度 I1=rgb2gray(I);%将原图像转化为灰度图象 figure;subplot(2

通过实例来介绍for循环怎么用,首先求1到5的和,代码:

从R=xlsread('。。。.xlsx','sheet1','B1:B1359')后,要调用每个数值,应该用for循环语句来取得。即 R=xlsread('。。。.xlsx','sheet1','B1:B1359') n=length(R) %获得R向量的长度 for i=1:n Ri=R(i); %读取第i位置的R值 。。。 end

Y=0;

for i=1:5

for(循环初值:单步执行幅度:终止条件)%(三个都可以省略) 循环内容; end help可以在matlab的命令提示窗口使用 例如:help for

Y=Y+i;

如果数组a中第一行的1000个元素中有大于0.5的,则将这个元素重新赋值为1,其它情况(等于或小于0.5)则重新赋值为-1。m是让rand函数产生多少列的数组,rand(1,m)表示产生1行m个列的随机数组。

end

fprintf('Y=%d n',Y);如图所示:

非要这么搞只能用cell了: x = {[1,2], [3,4,5]};for i = x disp(i);end但这一般并不比迭代脚标方便,所以还是要自己斟酌。

在命令行窗口按回车键后,可以看到得出15的结果,如图所示。

这是可以的,如: b(1)=2000; for k=2:5 b(k)=b(k-1)+b(k-1)*(1+0.9)+200; end

也可以输出1,0.9,0.8,......,0;的10个数,代码如图所示。

这是可以的,如: b(1)=2000; for k=2:5 b(k)=b(k-1)+b(k-1)*(1+0.9)+200; end

在使用for循环的时候,可以使用和if语句来结合使用,break是结束循环,代码:

平行的循环是可以用同一个 i 的 ,嵌套的不可以 因为平行的循环里面 ,后面的循环重新赋值覆盖了之前的值。 例如 for i=1:3 i end for i=1:4 i end 另外其实matlab里面最好不要用i做循环变量,因为 matlab里面 i 同时也是单位虚数,这样在某些情

for ii = 1:5;

实现拼接根本不需要循环,一个语句就够了(前面load数据的部分不变): cat(1,a{:})示例: >> a={magic(3); eye(3); ones(3)}a = [3x3 double] [3x3 double] [3x3 double]>> cat(1,a{:})ans = 8 1 6 3 5 7 4 9 2 1 0 0 0 1 0 0 0 1 1 1 1 1 1 1

if ii == 3;

[ys, xs] = find(A==0); 这样可以返回两个列向量xs, ys 分别表示符合要求的点的行数和列数 然后 ys(1) xs(1) 这就是第一个符合要求点的坐标 ys(end) xs(end)这就是最后一个符合要求点的坐标

break;

最简单的语句for i=初值:增量:终值 循环体 end 一般就是用在需要用到循环的地方,如累加,累乘等运算,还有搜索,这是用的最多的。 其实我觉得一个程序肯定不能光有for循环的,但必须承认for循环可以让整个程序变得简单有效。

end

fprintf('ii = %d n', ii);

我也初学者,要不你看看 suzu=cell(20,1); %%%%%%建立一个20*1的元胞结构(每一个就是个数组) for i=1:20 cell{i}=zeros(4,5); %%%%%在这里不知道你想要什么样的20个数组,就建立个4*5的0矩阵 end 每个矩阵通过cell{i}来访问 如 cell{3}= 0 0 0

end

disp('End of loop!');

把mdl 设成632行的矩阵,每一行对应y每列的线性回归结果。mdl(i,:)=fitlm(a,y)

可以看到输出结果1,2,到3的时候结束循环输出End of loop!,如图所示:

为什么用两个for循环得不到作多条直线,其原因是多了一个循环,即 for x=1:100 end完整的代码应该为clc;close allfor q=-3:3 figure; y=0; x=1:100; y = y + power(x,q) ; plot(x,y); hold on; xlabel('x');ylabel('y')end

也可以在for循环的时候,使用continue;结束本次循环,运行结果如图所示:

没必要嘛,用while不就OK了。例如, k = 111111; i = 0; while(i < k) if (need change) k = k + 1; end end

扩展阅读,以下内容您可能还感兴趣。

matlab 的for循环里面,如何把前一次计算的值用于下一次计算?

这是可以的,如:

b(1)=2000;

for k=2:5

b(k)=b(k-1)+b(k-1)*(1+0.9)+200;

end追问b(1)这里的1可以为分数吗?

如果不行的话,我想把这个for循环的结果绘制一个图像,但是想把K的值变成原来的1/2,也就是说把这个图像按比例缩放,应该怎么做……追答b(1)这里的1是脚标索引,不可以为分数,只能是正整数。

你说的缩放图像是有一定方法的,不是这个样子。如:

b(1)=2000;

a=1/2;

for k=2:5

b(k)=a*b(k-1)+a*b(k-1)*(1+0.9)+200;

end

matlab 多个for循环能不能用同一个i?

平行的百循环是可以用同一个 i 的 ,嵌套的不可以

因为平行的循环里度面  ,后面的循环重新赋值覆盖了之前问的值。

例如 

for i=1:3

    i

end

for i=1:4

    i

end

另外其实matlab里面最好不要用i做循答环变量,因为回 matlab里面 i 同时也是单位虚数,这样在某些情况下容易因混淆而导致逻辑错误答

MATLAB中如何用for循环连续拼接矩阵?

实现拼接根本不需要循环来,一个语句就够源了(前面load数据zd的部分不变):

cat(1,a{:})

示例:

>> a={magic(3); eye(3); ones(3)}

a =

    [3x3 double]

    [3x3 double]

    [3x3 double]

>> cat(1,a{:})

ans =

     8     1     6

     3     5     7

     4     9     2

     1     0     0

     0     1     0

     0     0     1

     1     1     1

     1     1     1

     1     1     1

在matlAB中,用for循环赋值的问题

[ys, xs] = find(A==0);

这样可以返回两个列向量度xs, ys

分别表示符合回要求的点的行数和列数

然后

ys(1) xs(1) 这就是第一个符答合要求点的坐标

ys(end) xs(end)这就是最后一个符合要求点的坐标追问为什么我读取的xs的值 是改点的值的三倍。每个点的扩大了三倍。追答A是三通道矩阵吧?

运行

[r, c, p] = size(A)

看看p是多少

matlab中 for循环要怎么应用应用在哪个方面

最简单的语句for i=初值:增量zhidao:终值

循环体

end

一般就是用在需要用到循环内的地方,如累加,累乘等运算,还有搜索,这是用的最多的。

其实我觉得一容个程序肯定不能光有for循环的,但必须承认for循环可以让整个程序变得简单有效。