MATLAB简单入门
MATLAB笔记
1、系统知识
- MATLAB乘法一般进行的是矩阵运算,点运算是矩阵里的元素运算。
比如
a=[1 2 3 4];
b=[2 2 2 2];
对应元素相乘就是
a.*b=[2 4 6 8];
如果直接写
a*b会报错,因为直接写*就是矩阵乘法,a的列数不等于b的行数,不能相乘
matlab中log如果不加角标则表示以自然对数为底,即ln
模糊查询:输入一个命令的前几个字母后按tab键就可以补全
帮助命令:help plot就可以显示出plot的全部用法
who命令可以显示变量,whos可以显示变量的具体信息
>> who您的变量为:a y >> whosName Size Bytes Class Attributesa 1x12 96 double y 3x4 96 double
- save - 将工作区变量保存到文件中,此 MATLAB 函数 将当前工作区中的所有变量保存在 MATLAB 格式的二进制文件(MAT 文件)filename 中。如果 filename 已存在,save 会覆盖该文件。
- load - 将文件变量加载到工作区中。此 MATLAB 函数 从 filename 加载数据。
- 在matlab中,字符串用单引号括起来
- matlab中input默认输入的只能是数字,如果想要输入字符串,可以这么写:x = input(‘请输入字符串:’,‘s’)
- disp - 显示变量的值
此 MATLAB 函数 显示变量 X 的值,而不打印变量名称。显示变量的另一种方法是键入它的名
称,这种方法会在值前面显示一个前导X =。 - lasterr - 最后一条错误消息
此 MATLAB 函数 返回 MATLAB 生成的最后一条错误消息。
2、常用数学函数
1.三角函数和双曲函数
2.指数函数
注: pow2(x)=x^2 pow2(x,y)=x^y
3.复数函数
4.圆整函数和求余函数
5.矩阵变换函数
6.其他函数
3、画图
格式设置
hold on命令,使用后绘图框不会清空。hold off是取消
xlabel是横轴说明,ylabel是纵轴说明,title是标题,text(x,y,图形说明)用于在(x,y)点添加说明,legend是图例
axis on显示坐标轴;axis off取消坐标轴
axis([xmin xmax ymin ymax zmin zmax])用来设置坐标轴长度
grand on/off 用来控制开关网格线
box on/off 用来控制加不加边框线
subplot - 在各个分块位置创建坐标区此 MATLAB 函数 将当前图窗划分为 m×n 网格,并在 p 指定的位置创建坐标区。MATLAB 按行
号对子图位置进行编号。第一个子图是第一行的第一列,第二个子图是第一行的第二列,依此类推。如果指定的位置已存在坐标区,则此命令会将该坐标区设为当前坐标区。
subplot(m,n,p) %表示创建m行n列个子图,在第p个子图上画图
- figure - 创建图窗窗口
此 MATLAB 函数 使用默认属性值创建一个新的图窗窗口。生成的图窗为当前图窗。
plot - 二维线图
plot(X, Y, LineSpec)
其中X由所有输入点坐标的x值组成,Y是由与X中包含的x对应的y所组成的向量。LineSpec是用户指定的绘图样式,主要选项如下:
Specifier | Line Style*(线型)* |
---|---|
— | 实线(默认样式)虚线(短划线) |
: | 点线 |
-. | 点划线 |
Specifier | Marker*(坐标点样式)* |
---|---|
o | 圆 |
+ | 加号 |
* | 星号 |
. | 点 |
x | 十字 |
s | 正方形 |
d | 菱形 |
^ | 上指向三角形 |
v | 下指向三角形 |
> | 右指向三角形 |
<<o:p> | 左指向三角形 |
p | 五角星 |
h | 六角形 |
Specifier | Color |
---|---|
y | 黄色 |
m | 品红 |
c | 蓝绿色 |
r | 红色 |
g | 绿色 |
b | 蓝色 |
w | 白色 |
k | 黑色 |
例如:’–or’表示坐标点为圆圈标志,且线型为红色短划线的绘图样式。
plot3 - 三维点或线图
此 MATLAB 函数 绘制三维空间中的坐标。 要绘制由线段连接的一组坐标,请将 X、Y、Z 指定为相同长度的向量。 要在同一组坐标轴上绘制多组坐标,请将 X、Y 或 Z 中的至少一个指定为矩阵,其他指定为向量。
plot3(X,Y,Z)
meshgrid - 二维和三维网格
此 MATLAB 函数 基于向量 x 和 y 中包含的坐标返回二维网格坐标。X 是一个矩阵,每一行是 x 的一个副本;Y 也是一个矩阵,每一列是 y 的一个副本。坐标 X 和 Y 表示的网格有 length(y) 个行和 length(x) 个列。
[X,Y] = meshgrid(x,y)
mesh - 网格曲面图
此 MATLAB 函数 创建一个网格图,该网格图为三维曲面,有实色边颜色,无面颜色。该函数将矩阵 Z 中的值绘制为由 X 和 Y 定义的 x-y 平面中的网格上方的高度。边颜色因 Z 指定的高度而异。
x = 0:0.1:1;
[x,y] = meshgrid(x);
z = sin(y).*cos(x) ;
mesh(x,y,z)
surf - 曲面图
此 MATLAB 函数 创建一个三维曲面图,它是一个具有实色边和实色面的三维曲面。该函数将矩阵Z 中的值绘制为由 X 和 Y 定义的 x-y 面中的网格上方的高度。曲面的颜色根据 Z 指定的高度而变化。
x = 0:0.1:1;
[x,y] = meshgrid(x);
z = sin(y).*cos(x) ;
surf(x,y,z)
bar - 条形图
此 MATLAB 函数 创建一个条形图,y 中的每个元素对应一个条形。如果 y 是 m×n 矩阵,则bar 创建每组包含 n 个条形的 m 个组。
bar(y)
bar(x,y)
barh - 水平条形图
此 MATLAB 函数 创建一个水平条形图,每个条形对应 y 中一个元素。如果 y 是 m×n 矩阵,则 barh 创建每组包含 n 个条形的 m 个组。
barh(y)
barh(x,y)
histogram - 直方图
直方图属于数值数据的条形图类型,将数据分组为 bin。创建 Histogram 对象后,可以通过更改直方图的属性值修改它的各个方面。这对快速修改 bin 属性或更改显示特别有用。
histogram(X)
histogram(X,nbins)
4、解方程式
求解多项式
对于一个多项式,假如其系数为P=[2,2,3,5],即
2x3+2x2+3x+5=02x^3+2x^2+3x+5=0 2x3+2x2+3x+5=0
则其根为x = roots§
求解线性方程组
求解线性方程式
2x1+3x2−x3=28x1+2x2+3x3=445x1+3x2+9x3=232x_1+3x_2-x_3=2\\ 8x_1+2x_2+3x_3=4\\ 45x_1+3x_2+9x_3=23 2x1+3x2−x3=28x1+2x2+3x3=445x1+3x2+9x3=23
的解,用下列代码
a = [2,3,-1;8,2,3;45,3,9];
b = [2;4;23];
x = inv(a)*b %inv(a)表示a矩阵的逆矩阵
求定积分
使用integral函数,下面是求f在[0,1]上的积分
f = @(x) x.*log(1+x)
integral(f,0,1)
5、format命令
matlab中专用命令 format用于针对数据的显示形式进行控制,但该命令不影响数据的储存形式和计算精度
format:设置输出格式
对浮点性变量,缺省为format short。另外,format short, long不影响整型变量的显示。
format 默认格式
format short 5字长定点数,显示5位(scaled fixed point format with 5 digits)
format long 15字长定点数,显示15位双精度,7位单精度(scaled fixed point)
format short e 5字长浮点数
format long e 15字长浮点数
format hex 16进制
format bank 定点货币形式
format rat 小数分数表示
format + +,-,空格
format compact 压缩空格
format loose 包括空格和空行
format long 15字长定点数
format short e 5字长浮点数
format long e 15字长浮点数
format short g 5位定点或浮点格式。
format long g 对双精度,显示15位定点或浮点格式,对单精度,显示7位定点或浮点格式。
6、矩阵
创建矩阵
矩阵:用[]建立,同行之间用逗号(,)分隔,不同行之间用分号(;)分隔,例如a = [2,3,-1;8,2,3;45,3,9];
使用冒号可以产生一个行向量,一般格式是:e1:e2:e3,其中e1是初始值,e2是步长,e3是终止值。
也可以使用linspace产生行向量,格式为linspace(a,b,n),n是元素总数。和a:(b-a)/(n-1):b等价
矩阵中的元素可以用下标或者序号表示,下列矩阵A中5可以用A(2,2)或者A(5)(竖着数)表示。
1234567891 \ \ \ \ 2\ \ \ \ 3\\ 4 \ \ \ \ 5\ \ \ \ 6\\ 7 \ \ \ \ 8\ \ \ \ 9\\ 1 2 34 5 67 8 9
利用冒号获取子矩阵
子矩阵是指由矩阵中的一部分元素构成的矩阵。我们既可以用冒号表达式作为引用矩阵的下标吗,也可以直接用单个的冒号来作为行下标或列下标,其代表全部行或全部列。则有先关概念如下:A(i,:) 第i行的全部元素A(:,j) 第j列的全部元素A(i:i+m,k:k+m) 第i~i+m行内,且在第k~k+m列中的所有元素A(i:i+m,:) 第i~i+m行的全部元素%创建3行5列的矩阵A>> A=[1,2,3,4,5;6,7,8,9,10;11,12,13,14,15]A =1 2 3 4 56 7 8 9 1011 12 13 14 15%利用冒号表达式获得子矩阵,其表达的是矩阵中第1、2行的元素。>> A(1:2,:)ans =1 2 3 4 56 7 8 9 10%表示引用矩阵第2、3行的第1、3、5列的元素>> A(2:3,1:3:5)ans =6 8 1011 13 15我们还可以用一般向量和end运算符来作为下标,从而获得子矩阵。end表示某一维的末尾元素下标。例如:%创建4行5列的矩阵A>> A=[1,2,3,4,5;6,7,8,9,10;11,12,13,14,15;16,17,18,19,20];>> A(end,:) %引用矩阵A的最后一行元素ans =16 17 18 19 20%表示引用第1、4行的第3到最后一列元素>> A([1,4],3:end)ans =3 4 518 19 20
reshape - 重构矩阵
可以利用reshape命令来改变矩阵的形状
>> a = [1,2,3,4,5,6,7,8,9,10,11,12];
>> y = reshape(a,3,4)y =1 4 7 102 5 8 113 6 9 12
7、创建函数
function
创建脚本后使用function创建函数
function - 声明函数名称、输入和输出此 MATLAB 函数 声明名为 myfun 的函数,该函数接受输入 x1,...,xM 并返回输出y1,...,yN。此声明语句必须是函数的第一个可执行代码行。有效的函数名称以字母字符开头,并且可以包含字母、数字或下划线。function [y1,...,yN] = myfun(x1,...,xM)
下面为创建函数的例子
在名为 stat.m 的文件中定义一个函数,该函数返回输入向量的均值和标准差。function [m,s] = stat(x)n = length(x);m = sum(x)/n;s = sqrt(sum((x-m).^2/n));
end
从命令行调用该函数。values = [12.7, 45.4, 98.9, 26.6, 53.1];
[ave,stdev] = stat(values)
ave =47.3400
stdev =29.4124
匿名函数
f = @(x)表示f是关于x的函数,f = @(x,y,z)表示f是关于x,y,z的函数
匿名函数名 = @(输入参数) 匿名函数表达式
f = @(x) x.*log(1+x) %后面写f的表达式
8、TXT文本操作
数值型文本读取
假如score.txt中数值文本如下0.13 68 99
0.05 90 80
0.17 99 65
0.08 90 92
下面为读取数据
data = load('score.txt'); %load只支持读取全是数值的文本
w = data(:,1); %读取第一列数据
s = data(:,2:3); %读取第二三列数据
字符型文本读取
假若swords.txt内容如下:
刘正风
包惜弱
东方不败
小龙女
杨过
李长寿
老子
李长庚
赵公明
全是字符的文本使用fopen打开
>>fid = fopen('swords.txt','r'); %fid是句柄
>>t1 = fgetl(fid) %读取第一行
t1 = 刘正风>>t2 = fgetl(fid) %读取第二行
t2 = 包惜弱>>t3 = fgetl(fid) %读取第三行
t3 = 东方不败>>t = [t1(1) t2(3) t3(1)]
t = 刘弱东>>fclose(fid); %最后需要关闭
TXT文本写入
fid = fopen('bill.txt','w');
fprintf(fid,'京西商城月账单\n\n');
fprintf(fid,'电子 -20000\n');
fprintf(fid,'包包 %d\n',-1200);
fprintf(fid,'%s %d\n\n','服装',-24000);
fprintf(fid,'账目细节\n');
detail = -[845 832.5 836 872.2 825 844];
fprintf(fid,'%-5d %5.1f\n',[1:6;detail]); % %-5d表示占5个字符,左对齐 %5d是右对齐
bill.txt的文本如下:
京西商城月账单电子 -20000
包包 -1200
服装 -24000账目细节
1 -845.0
2 -832.5
3 -836.0
4 -872.2
5 -825.0
6 -844.0
9、Excel文本数据操作
读取
>>data = xlsread('data.xlsx','Sheet1','A3:C5') %分别为 文件名 表名 读取数据区域
%例如读取出来的数据为
data = NaN 81NaN 3595 77>>data(isnan(data)) = 0 %把为NaN的值赋为0
data = 0 810 3595 77
写入
>>xlswrite('RS.xlsx',{'T','W'},'Sheet1','B1:C1'); % T W为写入的数据
>>XYZ = {'X','Y','Z';6 6 4;8 7 5};
>>xlswrite('RS.xlsx',XYZ','Sheet1','A2:C4');
MATLAB简单入门相关推荐
- Matlab 界面设计简单入门(App Designer)
新版Matlab交互界面基本操作 注意:本教程仅适用于2016b以后版本,建议安装2019b以后最新版本Matlab 与原来的GUIDE不同,新版的App Designer程序编写更加合理,更加好看, ...
- 第一讲 Matlab/Simulink入门——简单系统模型的Simulink仿真
第一讲 Matlab/Simulink入门--简单系统模型的Simulink仿真 1.模型的数学表达式 2.建立系统模型 2.1.选择模块 2.2.参数设置 3.系统仿真 1.模型的数学表达式 y = ...
- python如何读取mat文件可视化_python Matplotlib数据可视化(1):简单入门
1 matplot入门指南 matplotlib是Python科学计算中使用最多的一个可视化库,功能丰富,提供了非常多的可视化方案,基本能够满足各种场景下的数据可视化需求.但功能丰富从另一方面来说也意 ...
- matlab画图入门篇--各种基本图形绘制的函数与实例【转载】
MATLAB画图入门篇--各种基本图形绘制的函数与实例 一. 二维图形(Two dimensional plotting) 1. 基本绘图函数(Basic plotting function):Plo ...
- 【开关电源】matlab/simulink入门
一.Simulink仿真入门 参考:matlab/simulink入门 Simulink是MATLAB最重要的组件之一,它提供一个动态系统建模.仿真和综合分析的集成环境.在该环境中,无需大量书写程序, ...
- 第一章 matlab 学习入门之matlab基础
matlab系列文章目录 第一章 matlab 学习入门之matlab基础 在这一章会学习到: 数据类型(数值,字符串,结构,单元数组,函数句柄,映射容器) 运算符与运算(算术运算符,关系运算符,逻辑 ...
- 第五讲 Matlab/Simulink入门——混合系统仿真实例
第五讲 Matlab/Simulink入门--混合系统仿真实例 1.混合系统仿真 2.通信系统 2.1调制与解调 2.2 通信信道 2.3 建模 2.4 仿真结果 3.行驶控制系统 3.1 物理模型与 ...
- 第三章 matlab学习入门之编程基础
系列文章目录 第三章 matlab学习入门之编程基础 在这一章,你会学到的知识: 变量与语句: 程序控制: M文件: 脚本: 函数: 变量检测: 程序调试: 文章目录 系列文章目录 前言 一.变量与语 ...
- Matlab编程入门指南:简介、安装、学习路线和几十个编程案例分析。
一.Matlab编程入门指南:简介.安装.学习路线和几十个编程案例分析. 1.Matlab编程语言是一种广泛应用于科学计算.工程计算.数据分析.统计分析.信号处理等领域的高级数值计算和数据可视化软件. ...
- 1_simulink简单入门_simulink仿真PID控制
1_simulink简单入门_simulink仿真PID控制 2_simulink搭建RCL_电阻电感电容模块 毕业前想去做物联网还是或者linux,结果玩了一年多的电机控制,早就深知matlab/s ...
最新文章
- linux执行命令段错误,Linux运行fortran程序 出现段错误(segmentation fault)
- 经济参考报:想哭病毒为中国网络安全敲警钟
- hive mysql 远程_ubuntu中为hive配置远程MYSQL database
- c 内嵌php 韩天峰,PHP-X系列教程之内置函数的使用示例
- Oracle 11g安装图文攻略
- P3193-[HNOI2008]GT考试【KMP,dp,矩阵乘法】
- 【Maven】log4j-slf4j-impl cannot be present with log4j-to-slf4j
- [转载] pandas DataFrame apply()函数(1)
- 2020计算机软考初级都考什么,软考都考什么内容
- 开发管理·华为IPD
- 清空文本框java_Java 添加、删除Word文档中的文本框
- 对比不同主流存储格式(csv, feather, jay, h5, parquet, pickle)的读取效率
- MySQL 递归 sql语句 WITH表达式实现
- 教程:这个难到几乎无人通关的游戏,在它面前就是渣!
- 矩阵特征向量和特征值的意义
- 设计模式(3)----- 简单工厂模式
- 网络封包抓取工具 Winpcap
- 使用Arduino开发ESP32(八):ESP32的EPROM的写入读取
- 中国获得2022年冬奥会举办权【经济学人】
- 最简单的3个方法,让你信用卡快速提额!
热门文章
- 交叉编译ghostscript-9.53.3
- 计算机软硬件故障排除知识,计算机软硬件基础知识及常见故障排除方法
- 全世界最全牛人博客,你可以学习到太多!
- UWB定位/RSSI定位 三边测量法trilateration C语言代码详解
- 打开量化投资黑箱-v2-黑箱结构
- matlab 时间轴 绘图,时间轴制作超详细教程,助你轻松画出专业时间轴!
- 音频HiFi的二三事
- VAX破解版支持VS2010和2013,代码智能提示,安装就能用,不用替换文件
- 人人开源需要的问题与解决方案(一)——公网访问、内网穿透
- 草图大师su安装程序无法进行的解决办法。