随着美赛的推进,数学建模用到matlab的越来越多,然而对matlab不熟悉的还很多,在此写下matlab基础篇,一是帮助没有了解过matlab的同学入门,二是帮助自己巩固知识。

时间紧迫,直接开始!此篇文章包括:
1.1matlab的基础使用
1.1.1特殊变量和常量
1.1.2 输出
1.1.3 matlab command window的基础使用
1.2matlab矩阵的基础使用
1.2.1矩阵行列的输入
1.2.2matlab矩阵索引
1.2.3快速创建大数组
1.2.4矩阵的运算
1.2.5矩阵运算函数
1.3plot库的基础使用
1.3.1plot颜色形状参数等
1.4matlab的数据类型
1.4.1数值类型
1.4.2字符和字符串
1.4.3数据类型之间的转换
1.4.4单位数组
1.5matlab的绘图
1.5.1线性图的绘制
1.5.2饼图的绘制
1.5.3散点图的绘制
1.5.4误差条图
1.5.5直方图his
1.5.6复合直方图
1.5.7多轴图
1.5.8创建动画

1.1.1特殊变量和常量

变量/常量 含义
ans 最近的计算结果的变量名
i,j 虚数表示
Inf
eps 2.2204e-016
NaN 非数
pi π

1.1.2 输出

a = 10      # 确认输入之后会输出ans
b = 10;     # 带有分号,确认输入之后不会输出ans,直接当做变量存储到workspace里

1.1.3 matlab command window的基础使用

用↑可以查看历史输入指令
clc:清除command window的所有显示
close all : close all figures
clear:清除workspace所存储的所有变量信息和计算结果(慎用,不可逆)
clear var:清除指定变量var
who:显示在workspace所存储的变量
whos:显示在workspace所存储的变量的详细信息

1.2.1 矩阵行的输入

行向量的表示: a = [1 2 3] #(数字之间用空格隔开,表示数字在同一行)
列向量的表示: b = [1;2;3] #(数字之间用分号隔开,分号相隔的数字单独成行)

1.2.2 matlab矩阵索引

A(row, col)

提取单个元素

A = [1 2 3;4 5 6;7 8 9]
A(2,3) #即提取二行三列的元素6

一次提取多个元素

A = [1 2 3;4 5 6;7 8 9]
A([1 3], [1 3])

提取单个元素

A(8) #纵向开始数,从左往右纵向数,第8个为6

一次提取多个元素

A([1 3 5]) #表示为A(1),A(3),A(5)整合的一个行向量 结果为[1 7 5]
A([1 3;1 3]) #即表示[A(1) A(3);A(1) A(3)]

1.2.3快速创建大数组
我们可以先输入一个二维数组,然后通过第三维数组与其关系生成第三维数组,例如输入以下代码可以生成三维数组:

D2=[1,2,3;4,5,6;7,8,9];D3(:,:,1)=D2;D3(:,:,2)=2*D2;D3(:,:,3)=3*D2;

用:代表要显示的整行整列

显示矩阵的一整行:A(3, :)表示显示矩阵的第3行,冒号表示全部信息
显示矩阵的一整列:A(:, 2)表示显示矩阵的第2列

删除整行整列

删除一整行或一整列:赋值[]即可;如A(3, : ) = []使得A的第三行被删除

矩阵间的连接

增广矩阵C = A|B在MATLAB中采用C = [A B](注意是中括号而不是括号,中括号代表矩阵)表示

同理,若要将B矩阵放在A矩阵的下方,则表示为:C = [A;B](即之前的数字换为矩阵)

1.2.4矩阵的运算

点乘:A.*B 表示A,B对应位置的数相乘所形成的矩阵(就像A+B一样只是对应位置的数相加,只是这里换成了乘法)
点除:与点乘同理,乘法换为除法
点阶乘:同理,A.^a 表示每个entry进行a阶乘运算
矩阵加实数:如A + a 表示将A矩阵的所有entry都加上a
矩阵转置:A’

1.2.5矩阵的运算函数
还是使用上面的矩阵A,一起来看一下矩阵的运算函数的使用。

max(A) #表示A中每一列的最大值提取出来后形成的行向量
max(max(A)) # 表示矩阵中最大的entry,即9

min(min(A)) # 表示矩阵中最小的entry,即1

sum(A) #表示A中每一列之和所组成的行向量

mean(A) # 表示A中每一列的平均数所组成的行向量

sort(A):表示A中的每一列进行从小到大的排序(每一个row的数据没有绑定在一起)

sortrows(A)#表示A中的所有row按第一列进行排序,每一行row的数据是绑定的
size(A)#求出A的m x n

length(A)#求出A的长,也即为:max(m,n)(将A看成矩形,矩形的长即为length(A)的值)
find(A==n)#求出A中n的位置是多少(index按前面提到的角度二计算);若不存在则返回:空矩阵: 0×1


1.3.1plot颜色和类型
生成简单的sinx图

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

生成矩阵图像

X=rand(3,3); %随机生成3*3矩阵
figure;
hold on;
plot(X)

生成带参数的图像

x = 0:pi/10:2*pi;
y = sin(x);
figure;
hold on;
plot(x,y,'r-') #带参数 r为红色 -为实线

1.4matlab的数据类型
1.4.1数值类型
1.实数

Matlab的数值类型分为三种,整形,单精度浮点型和双精度浮点型
整形 int 单精度浮点 single 双精度浮点double
因为系统默认的数据类型是双精度浮点,所以在将变量设置为整数时需要进行转换,matlab提供了如下的转化函数。

函数 运算法则
floor 向下取整
ceil 向上取整
round 取最接近的整数
fix 向0取整

2.复数

复数由实部和虚部两部分构成,在Matlab中,字符i或j默认作为虚部标志,关于复数的相关函数如下:

函数 说明 函数 说明
complex(a,b) 构造以a为实部,以b为虚部的复数 i,j 虚部标识
real(z) 返回复数z的实部 image(z) 返回复数z的虚部
abs(z) 返回复数z的模 angle(z) 返回复数z 的辅角
conj(z) 返回复数z的共轭复数

3、无穷量(Inf)和非数值量(NaN)

Matlab中使用Inf和-Inf分别表示正无穷大和负无穷大,NaN表示非数值量。正负无穷大一般是由于运算溢出产生,非数值量则是由于类似0/0或Inf/Inf类型的非正常运算产生。

1.4.2字符和字符串

Matlab将文本作为特征字符串或简单地当做字符串,但是实际存储的是字符串的ASCII码。abs函数可以获得字符串的具体值,使用方法如下:

>> a='abc'a =abc>> abs(a)ans =97    98    99

1.4.3数据类型之间的转换
类型识别函数:

函数 功能 函数 功能
iscell 判断是否为单元数组 isnumeric 判断是否为数值数组
isreal 判断是否为实数 ischar 判断是否为字符数组
isstr 判断是否为字符串 isfloat 判断是否为浮点数
isstruct 判断是否为结构数组 whos 列举变量类型及相关数据

类型转换函数:

函数 功能 函数 功能
dec2bin 十进制转为二进制 int2str 整数转为字符串
num2str 数值转为字符串 str2double 字符串转为double

1.4.4单位数组
1.创建单位数组

>> A={'x',[2;3;6];10,2*pi}A = 'x'     [3x1 double][10]    [    6.2832]

2.访问单位数组

在单元数组中,单元和单元中的内容属于不同范畴,这意味着访问单元和访问单元中的内容是两个不同的操作。对于单元数组C,C(m,n)指的是单元数组中第m行第n列的单元,而C{m,n}则是指的是第m行第n列的单元中的内容。

>> A(1,1)ans = 'x'>> A(1,2)ans = [3x1 double]>> A{1,2}ans =236

3.单位数组的合并

>> C={'a','b';'c','d'}C = 'a'    'b''c'    'd'>> D={'1','2'}D = '1'    '2'>> E={A;B}E = {2x2 cell}{2x2 cell}>> E{1,1}ans = 'x'     [3x1 double][10]    [    6.2832

1.5.8创建动画
sinx 动画绘制

clear all
h = animatedline;%动画线
axis([0 4*pi -1 1])
box on
x = linspace(0,4*pi,200);for k = 1:length(x)y = sin(x(k));addpoints(h,x(k),y);%将数据添加到动画线中drawnow%画出动画线f=getframe(gcf); imind=frame2im(f);[imind,cm] = rgb2ind(imind,256);if k == 1;imwrite(imind,cm,'test.gif','GIF', 'Loopcount',inf,'DelayTime',1);elseimwrite(imind,cm,'test.gif','GIF','WriteMode','append','DelayTime',1);end
end

到此关于数学建模matlab入门的学习就到此结束了,但是学习还未结束,如需数学建模优秀论文和算法的资料,可在本文下评论获取

数学建模之matlab入门篇相关推荐

  1. matlab app设计步骤_1.1数学建模与MATLAB–MATLAB入门

    1.1数学建模与MATLAB–MATLAB入门 关注本专栏,继续分享数学建模与MATLAB知识 一.MATLAB是什么? MATLAB 是目前在国际上被广泛接受和使用的科学与工程计算软件.虽然 Cle ...

  2. matlab或_数学建模与MATLAB——MATLAB入门

    点击上方"蓝字",有更多精彩等着你噢! 关注本专栏,我们将继续分享数学建模与MATLAB知识. 你想要的,我都有! 一MATLAB是什么?MATLAB 是目前在国际上被广泛接受和使 ...

  3. 卓金武——从数学建模到MATLAB

    卓金武--从数学建模到MATLAB 2013-9-4 09:48| 发布者: ilovematlab| 查看: 9647| 评论: 40 摘要: 人物简介--卓金武(Steven),MathWorks ...

  4. matlab求动物繁殖问题,动物繁殖问题数学建模实验matlab程序.doc

    动物繁殖问题数学建模实验matlab程序 问题: 谋农场饲养的某种动物所能达到的最大年龄为15岁,将其分为三个年龄组:第一组0-5岁:第二组6-10岁:第三组11-15岁.动物从第二个年龄组开始繁殖后 ...

  5. matlab实指数序列,matlab入门篇正弦信号实指数信号和复指数信号的仿真

    matlab入门篇正弦信号实指数信号和复指数信号的仿真 正弦信号与实指数 /复指数信号的仿真Matlab- -学习目标o 通过对正弦信号.余弦信号.指数信号.复指数信号这些初级信号的仿真,初步掌握各种 ...

  6. 数学建模用matlab还是python_参加数学建模用 MATLAB,还是 Python?

    ) X Q# ~ v# e' N2 [, @0 K9 B4 C" g 参加数学建模用 MATLAB,还是 Python?作者:薛定谔的猫4 V4 q6 W" }8 m6 J9 H# ...

  7. u=q k 的交通流模型图 matlab,数学建模回归分析matlab版.ppt

    <数学建模回归分析matlab版.ppt>由会员分享,可在线阅读,更多相关<数学建模回归分析matlab版.ppt(51页珍藏版)>请在装配图网上搜索. 1.2020/11/2 ...

  8. 数学建模matlab和python_参加数学建模用 MATLAB,还是 Python?

    你应该学习吉他还是钢琴?你应该学习足球还是篮球?你应该学习化学还是物理学?这些问题的答案取决于你的兴趣点在哪里,方向选择是什么,而后再说选什么 :让我们借助比较通俗的方式切入,来讨论Matlab和Py ...

  9. 数学建模专栏 | 第十篇:MATLAB CUMCM真题求解实例一:数据型

    本讲针对的题型是数据型的建模问题, 2012 年的 A 题就是一道典型这类问题,接下来将介绍这道题的 MATLAB 求解过程. 1. 问题的提出 确定葡萄酒质量时一般是通过聘请一批有资质的评酒员进行品 ...

  10. 数学建模专栏 | 第七篇:MATLAB连续模型求解方法

    连续模型是指模型是连续函数的一类模型总称,具体建模方法主要是微分方程建模.微分方程建模是数学建模的重要方法,因为许多实际问题的数学描述将导致求解微分方程的定解问题.把形形色色的实际问题化成微分方程的定 ...

最新文章

  1. C#尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
  2. ***和******
  3. POJ 3630 Phone List
  4. Controller类的方法上的RequestMapping一定要写在Controller类里吗?
  5. 【 数字信号处理 】定点数的表示之定点数的字长问题
  6. 从MSSQL添加对Oracle的链接服务器的存储过程
  7. git 的右键快捷菜单恢复
  8. 机器之心 Synced 08月12日 20:59
  9. mysql远程服务器返回错误404未找到_远程服务器返回错误: 404错误、远程服务器返回错误:500错误、 HttpWebResponse远程服务器返回错误:(404、500) 错误。...
  10. 数据库事务原理详解-数据库隔离级别
  11. 学位论文是根,学术论文是叶
  12. Python作为人工智能的未来,已经超越Java高居首位
  13. 深入理解深度学习中的【卷积】和 feature map
  14. docker学习 主流的pass平台(体验的是设计模式)
  15. matlab如何设置数值类型,matlab数据类型(数值类型)
  16. 视频教程-Excel项目实战从入门到精通(兼容2007、2010、2013、2016)-Office/WPS
  17. java一维数组求质数_Java数组中最大质数和最小质数之间的差异
  18. 女孩的问题,男孩的回答
  19. yolov3.weight
  20. centos Unison+Inotify双向同步

热门文章

  1. qq在线客服html代码,QQ在线客服JS代码,自适应漂浮在网页右侧
  2. 演绎类清吧音响怎么选?
  3. Android入门,android基础开发
  4. 网页右下角弹出的图片无法显示
  5. 网易云、酷狗、QQ音乐歌单接口API
  6. spring boot小说网站系统 毕业设计源码论文+答辩PPT
  7. java adt下载_Android ADT 离线下载操作步骤
  8. 电子计算机系选课,奥克兰大学计算机系选课
  9. 清华计算机系研究生刘艺华,2017年清华大学计算机系硕士录取名单
  10. 清华计算机科学技术复试2018,2018清华大学计算机科学与技术系考研复试名单