matlab中for循环

发布网友 发布时间:2022-04-25 14:23

我来回答

5个回答

热心网友 时间:2023-10-09 00:03

s=0;%s的初值,求和变量
a=[12,13,14;15,16,17;18,19,20;21,22,23];%矩阵a
for k=a %将a的每一行的值赋予k 进行循环
s=s+k %循环过程 将s(i)+k的值赋予s(i+1),进行叠合求加
end
disp(s') 显示s的转置

热心网友 时间:2023-10-09 00:03

Matlab中matlab中for 循环的原理和应用

for 循环是用在须重复执行且执行次数有一定的算式,它的结构如下:
for index = array
command A
end

如果我们要计算一缆车离铁塔的速度 (v),它的速度计算方式与且铁塔的距离 (d)有关,假设以 10 公尺为判断值,则速度计算分为二个算式:

假设有一个阵列 d 为缆车到铁塔的距离,则以下的for 循环可计算速对应的速度 >> for k = 1:length(d)
if d(k) <= 10
velocity = 0.425 + 0.00175*d(k)^2;
else
velocity = 0.625 + 0.12*d - 0.00025*d(k)^2;
end
fprintf('d= %f velocity= %f\n',d(k),velocity)
end
另外几个例子
>> for n=1:10
x(n)=sin(n*pi/10);
end
>> disp(x)
>> for n=1:5
for m=5:-1:1
A(n,m)=n^2+m^2;
end
disp(n)
end
>> disp(A)
但是如果可以用阵列或是矩阵运算来取代以for 循环计算,就应采用前者因为计算速度快多了。上述的例子 可改为
>> n=1:10;
>> x=sin(n*pi/10);
使用 for 循环的规则如下:
上述的 for 循环中的指标 (index) 须为是一变数。
如果 array 代表阵列是空无一物,则循环不会被执行,例如 k=1:0。
如果 array 代表阵列是一纯量,则循环会被执行一次,例如 k=1:1。
如果 array 代表阵列是一向量,则循环会被依序的执行,例如 k=1:b, b=[1 3 5]。 如果 array 代表阵列是一矩阵,则循环会被逐行依序的执行,例如 k=1:B, B=[1 2; 3 4]。
for 完整的语法为: for k = first:increment:last,其中的 first, increment, last分别为初始值,增量,终止值。而循环被执行的次数由以下的算式决定: 1. 2. 3. 4. 5. 6.
floor((last-first)/increment)+1
如果计算得到的值为负,则循环不被执行。

热心网友 时间:2023-10-09 00:04

你是在高教版《matlab程序设计与应用》里看到的这个程序吧,我也看到了。书里面说for后面赋矩阵式依次将矩阵的各列元素赋给循环变量,但是按照运行结果,所以它应该说错了,应该是按行赋给才对,是吧。。

热心网友 时间:2023-10-09 00:04

s=0; %求和变量
a=[12,13,14;15,16,17;18,19,20;21,22,23];%统计的求和元素
for k=a %k取a中的每一个值,进行循环
s=s+k %叠加求和
end %for 的对应语句
disp(s') %显示结果(和)

热心网友 时间:2023-10-09 00:05

程序实现的功能:
矩阵a如下
12 13 14
15 16 17
18 19 20
21 22 23
将矩阵a的每一行相加求和,得到一个列向量经过转置成行向量

clear;clc
s=0; %赋给s初值0
a=[12,13,14;15,16,17;18,19,20;21,22,23]; %4×3矩阵a
for k=a %k取a的每一列(不是每一个值或每一行),进行循环
s=s+k %每一列对应的元素相加,迭代求和
end
disp(s') %转置,将列向量转化为行向量

运行结果如下:
s =

12
15
18
21

s =

25
31
37
43

s =

39
48
57
66

39 48 57 66
你看一下结果就知道了。
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com