数模 · 2020年1月22日 0

Matlab-数模被迫营业-02入门篇

我们继续记录matlab入门操作,我争取给他排版好看点

一、Matlab中的部分基础函数

1、max和min函数:

A = [1 2 3 4 5];

max(A)

ans=

5

 

min同上。

 

至于多个参数:

是两个数组的元素之间进行比较,采用相对较大的,我们再继续看这样的

也就是说,多个数组比较必须要维度一致。

 

如果存在多个输出参数,就将其括在方括号中:

[maxA,location] = max(A)

maxA =

5

 

location =

3

 

 

2、将想进行输出的 任何字符序列 括在单引号中:

disp(‘hello world’)

hello world

 

 

3、clc 函数: 清空 命令行窗口。(clc函数不需要任何输入且不会返回任何输出)

 

二、利用Matlab作二维与三维图

1、二维图的快速制作:

使用 plot 函数来创建二维线图,例如,绘制从 0 到 2\pi之间的正弦函数值:

x = 0:pi/100:2*pi;
>> y = sin(x);
>> plot(x,y)

这样就可以简单的做出一个图了

但是这样的图里面没有标记x,y轴,而且生成的图片没有名字

所以:

xlabel(‘x’)

ylabel(‘y’)

title(‘Sine Function’)

 

可以自己随便起的

这里面作图和py还是有很大的相似程度,py可以调整线段样式和颜色,matlab自然也可以

我们通过向 plot 函数添加第三个输入参数,可使用红色虚线r–绘制变量:

plot(x,y,’r–‘)

此外还会有+、o 或 *等样式

例如,’g:*’ 请求绘制使用 * 标记的绿色点线。

但是以上这些换样式是为了好看吗?直男表示当然不是(狗头

颜色和样式更多为了让图片中的曲线相互易于区分,可是我们应该怎么让图线画在一个图中呢~

要将绘图添加到现有图窗中,使用 hold on。在使用 hold off 或关闭窗口之前,当前图窗窗口中会显示所有绘图。

 

x = 0:pi/100:2*pi;
y = sin(x);
plot(x,y)
hold on

y2 = cos(x);
plot(x,y2,’:’)
legend(‘sin’,’cos’)

hold off

 

三维图的快速制作:

三维图通常显示一个由带两个变量的函数(即 z = f (x,y))定义的曲面图。

要计算 z,首先使用 meshgrid 在此函数的域中创建一组 (x,y) 点,然后创建曲面图:

[X,Y] = meshgrid(-2:.2:2);
Z = X .* exp(-X.^2 – Y.^2);
surf(X,Y,Z)

surf 函数及其伴随函数 mesh 以三维形式显示曲面图。surf 使用颜色显示曲面图的连接线和面。

而mesh 生成仅以颜色标记连接定义点的线条的线框曲面图

 

而为了让图片易于对比或对照,子图功能就会显得更加的人性化

使用 subplot 函数可以在同一窗口的不同子区域显示多个绘图。

subplot 的前两个输入表示要画几行几列,第三个输入表示当前图要画在第几个位置。

例如,在图窗窗口的 2×2 网格中创建四个绘图。

t = 0:pi/10:2*pi;
[X,Y,Z] = cylinder(4*cos(t));
subplot(2,2,1); mesh(X); title(‘X’);
subplot(2,2,2); mesh(Y); title(‘Y’);
subplot(2,2,3); mesh(Z); title(‘Z’);
subplot(2,2,4); mesh(X,Y,Z); title(‘X,Y,Z’);

 

 

三、使用Matlab的编程与脚本

脚本 是最简单的一种 MATLAB程序。是一个包含多行连续 MATLAB 命令和函数调用的扩展名为 .m 的文件。在命令行cmd中键入脚本名称即可运行该脚本。

1、创建脚本

edit 名称

然后在脚本中和matlab一样的语法的代码

eg.

n = 50;
r = rand(n,1);
plot(r)

m = mean(r);
hold on
plot([0,n],[m,m])
hold off
title(‘Mean of Random Uniform Data’)

 

和高级语言一样,编写代码时,最好添加描述代码的注释。使用百分比 (%) 符号添加注释。

记得将文件保存在当前文件夹中。

 

2、逻辑与循环语句

 

在脚本中,可以使用关键字 for、while、if 和 switch 循环并有条件地执行代码段。

例如,创建一个名为 calcmean.m 的脚本,该脚本使用 for 循环来计算 5 个随机样本的均值和总均值。

nsamples = 5;
npoints = 50;

for k = 1:nsamples
currrentData = rand(npoints,1);
sampleMean(k) = mean(currentData);
end
overallMean = mean(sampleMean)

 

在编辑器中,在 calcmean.m 末尾可以添加条件语句,使其根据 overallMean 的不同值显示不同的信息:

if overallMean < .49
disp(‘Mean is less than expected’)
elseif overallMean > .51
disp(‘Mean is greater than expected’)
else
disp(‘Mean is within the expected range’)
end

 

四、关于matlab的文档和help查看

使用 doc 命令在单独的窗口中打开函数文档
doc mean

在键入函数输入参数的左括号之后暂停,此时命令行窗口中会显示相应函数的提示(函数文档的语法部分)
mean(

使用 help 命令可在命令行窗口中查看相应函数的简明文档
help mean

 

(其实也都没啥,目前位置只是一些最最基本的操作,之后考虑一手实操)

some copy from 官网