MATLAB——循环语句

一、for end语句

在该语法中,循环变量是用于迭代的变量名,它会在每次循环迭代中从向量或矩阵中取出一列的值。数值向量或者矩阵则表示了循环变量可以取值的范围,通常根据实际需要事先给定。一旦循环变量遍历完数值向量或者矩阵中的所有值,循环就会结束。

注:如果是矩阵的话,则会取出矩阵的一列值。

例:求和代码(不用sum函数)

Matlab 复制代码
x = [5 8 9 1 4 3 7]
s = 0;  % 初始化最后的求和结果为0
for ii = x
    s = s + ii;
end
disp(s)

思考:如果x是一个列向量,左侧的代码输出的s是什么,应该如何修改代码?

方法一:

增加条件语句,判断是否为列向量,如果是的话,将列向量转置

Matlab 复制代码
if size(x,2)==1   %%列数是不是为1列
    xx=x';
else 
    xx=x;
end

方法二(妙):

x ( : ) 列举所有的值为一列,无论x是行向量还是列向量,都变成一列

在进行转置即可

Matlab 复制代码
xx = (x(:))' 

例2

计算当n等于100时,下面式子的结果:

写成求和形式:

Matlab 复制代码
n=100;
y=0;
for k=1:n
    y=y+1/(k*k);
end
disp(y)

例3

(3)计算当n从1一直取到100时,上一小问式子的计算结果,并将计算结果保存到一个长度为100的行向量S中(S中第i个元素表示y(i)的结果)。

Matlab 复制代码
S=zeros(1,100);
for n=1:100
    y=0;
    for k=1:n
        y=y+1/(k*k);
    end
    S(n)=y;
end
disp(S)

例4

Matlab 复制代码
n=30;
f=ones(1,n);
for k=1:n
    f(k)=f(k-1)+f(k-2);
end
Fn=f(n);
disp(Fn)

for循环注意事项

(1)若for语句后面的向量或者矩阵为空,则循环一次也不会被执行。

(2)for语句后面的向量或者矩阵只会在循环开始时使用一次,向量或者矩阵元素一旦确定将不会

再改变。即使你在循环体中改变向量或者矩阵的值,循环变量的值也不改变。

Matlab 复制代码
x = 1:4;
for ii = x
    x = [0 0 0 0];
    disp(ii)
end
disp(x)

(3)可以在循环体中修改循环变量的值,但当程序执行流程再次回到循环开始时,循环变量会自

动恢复成向量或者矩阵的下一列元素。

二、while end 语句

Matlab 复制代码
a(1)=1;
a(2)=1;
n=2;
while a(n)<9999
    n=n+1;
    a(n)=a(n-1)+a(n-2);
end
disp(a(end));

小tips :

(1)如果不小心执行了一个无限循环(即永远不会自行结束的循环,又称死循环),

可以按下 Ctrl+C 停止执行程序。

(2)while后面表达式的计算结果不一定非得是逻辑值1或0。如果表达式的计算结果是一个数值常

数,则只有当这个常数为非零值时循环才会进行;

(3)若表达式的计算结果是一个数值向量或者矩阵,则仅当该向量或矩阵中的所有元素都是非零

数时循环才会进行。

相关推荐
bst@微胖子30 分钟前
Python高级语法之selenium
开发语言·python·selenium
Paddi93033 分钟前
Codeforces Round 1004 (Div. 1) C. Bitwise Slides
c++·算法
王小义笔记35 分钟前
Postman如何流畅使用DeepSeek
开发语言·测试工具·lua·postman·deepseek
Luis Li 的猫猫1 小时前
深度学习中的知识蒸馏
人工智能·经验分享·深度学习·学习·算法
查理零世2 小时前
【蓝桥杯集训·每日一题2025】 AcWing 6118. 蛋糕游戏 python
python·算法·蓝桥杯
敲代码的小王!2 小时前
MD5加密算法和BCrypt密码加密算法
java·算法·安全
带娃的IT创业者3 小时前
机器学习实战(6):支持向量机(SVM)——强大的非线性分类器
算法·机器学习·支持向量机
java1234_小锋3 小时前
一周学会Flask3 Python Web开发-request请求对象与url传参
开发语言·python·flask·flask3
流星白龙5 小时前
【C++】36.C++IO流
开发语言·c++
孑么5 小时前
力扣 买卖股票的最佳时机
算法·leetcode·职场和发展·贪心算法·动态规划