matlab怎么用循环画图

matlab怎么用循环画图,第1张

matlab循环画图只需要画出一幅然后编程循环即可完成。
参考信息:
for
f=1:1000000;
w=2pif;
l=01e-3;c=025e-9;R=50;v=10e-10;
vg=R/(sqrt(R^2+(wl-1/(wc))^2))v;
plot(f,vg)
hold
on;
end

while语句用法如下:
格式:
while(条件)
循环体
end
注:条件成立时,执行循环体

扩展资料:


Matlab注意事项:
一、安装出错时,可换注册码继续安装,到同一目录;
二、谨记安装路径不要有中文名称;
三、成功安装完毕之后,如果遇到matlab启动后,窗口在打开一到两秒后就自动关闭了,
可按以下方法试试:假设你安装的目录为c:\MATLAB\(不过不建议安装到C盘,那样会影响系统速度!)
1、确认安装好后,在此路径下c:\MATLAB\bin\win32有一个名为
atlas_Athlondll的文件;
2、我的电脑上右击点"属性",再在"高级"中点"环境变量",在"系统变量"中点击
"新建"
输入以下信息:变量名:BLAS_VERSION
变量址:
c:\MATLAB\bin\win32\atlas_Athlondll
3、这样之后,启动MATLAB,不过又出现一个问题:窗口显示
To
get
started,
select
MATLAB
Help
or
Demos
from
the
Help
menu
The
element
type
"name"
must
be
terminated
by
the
matching
end-tag
"</name>"
Could
not
parse
the
file:c:\matlab\toolbox\ccslink\ccslink\infoxml
解决方案找到c:\matlab\toolbox\ccslink\ccslink\infoxml这个文件,用记事本打开注意,这是重点,或者写字板找到有一行这样的<name>Link
for
Code
Composer
Studio/name>,大概是在第七行吧,把这句的/name>改成</name>加左尖括号,保存文件,退出,即可。
4、安装MATLAB成功!
无法运行可以考虑使用兼容模式运行,比如windows
2000模式
参考资料来源:搜狗百科:MATLAB

matlab中 for循环是用来使一个结构循环的。

格式:

for 循环变量=表达式1:表达式2:表达式3

循环体

end

注:表达式1:循环变量初值,表达式2:步长,为1时,可省略;表达式3:循环变量终值。

或:

for循环变量=矩阵表达式

循环体

end

注:执行过程是依次将矩阵的各列元素赋给循环变量,然后执行循环体语句,直至各列元素处理完毕。

扩展资料

其他类型的循环结构:

C语言中的循环语句:

C语言中提供四种循环,即goto循环、while循环、do…while循环和for循环。四种循环可以用来处理同一问题,一般情况下它们可以互相代替换,但一般不提倡用goto循环,因为强制改变程序的顺序经常会给程序的运行带来不可预料的错误。

在学习中主要学习while、do…while、for三种循环。常用的三种循环结构学习的重点在于弄清它们相同与不同之处,以便在不同场合下使用。这就要清楚三种循环的格式和执行顺序,将每种循环的流程图理解透彻后就会明白如何替换使用。

如把while循环的例题,用for语句重新编写一个程序,这样能更好地理解它们的作用。特别要注意在循环体内应包含趋于结束的语句(即循环变量值的改变),否则就可能成了一个死循环,这是初学者的一个常见错误。

参考资料:

百度百科- MATLAB

参考资料:

百度百科-循环结构  

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 = 0425 + 000175d(k)^2;
else
velocity = 0625 + 012d - 000025d(k)^2;
end
fprintf('d= %f velocity= %f\n',d(k),velocity)
end
另外几个例子
>> for n=1:10
x(n)=sin(npi/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(npi/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
如果计算得到的值为负,则循环不被执行。

没仔细研究你那个拟合函数的用法。

不过像这种需要分段处理数据的情况很多,有种在 matlab 里很常用的技巧感觉你可以学学:

假设原始数据(xdata)是一列 100 个数,你需要一次处理 13 个,那么下面这段代码先将这 100 数“折叠”成一个 13 行的矩阵(x)。 我这个例子里是折叠成 13 8 的矩阵了。

因为 100 不能整除 13,所以会在最后补零。如果你不需要补零,而是把最后的零头扔掉,那么就把

ncol = ceil(nxdata/n);

改成

ncol = fix(nxdata/n);

最后就可以在循环里一列一列的处理数据了。我这个例子只是 y(:,i) = x(:,i) 而已,你的情况应该就是调用你自已写的拟合函数。

最后再用

y = y(:);

把数据还原成一维的。

如果你需要把之前补零的值删掉也可以在还原成一维的时候去掉。

以下是一个小例子,仔细研究一下就能学会这个小技巧了。

xdata = (1:100)';
nxdata = length(xdata);
nrow = 13;  % 假设你需要一次处理 13 个数据
ncol = ceil(nxdata/nrow);
x = zeros(nrow, ncol, 'like', xdata);
size(x)
x(1:nxdata) = xdata(:);
y = zeros(nrow, ncol, 'like', xdata);
for i = 1:ncol
    y(:,i) = x(:,i);
end
y = y(:);

如果你在处理数据之前,能保证折叠之后是整除的,即无需补零。还用我这个小例子,比如需要折叠成 10 行,也可以用 reshape(xdata, 10, [])。[] 是让 matlab 自己算整除后是多少列。如:

x2 = reshape(xdata, 10, []);
size(x2)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/yw/13042286.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-29
下一篇 2023-05-29

发表评论

登录后才能评论

评论列表(0条)

保存