matlab基本语法

基本语法

变量命名规则

  • 区分大小写
  • 长度不超过63位
  • 字母开头,可以有字母、下划线和数字组成,但不能使用标点
  • 应该简洁明了

命令行窗口

>>>clc 清楚命令窗口

>>> claer all 清理工作区内容

注释

%% 注释符

数据类型

1.数字

1+1

2*2

1/1

10-7

2.字符串

matlab 复制代码
s = 'a'
abs(s)  %%Ascll码
char(65) %% 65代表 'a'
num2str(65)%% 代表65

str = 'I Love MATLAB'
length(str) %%计算字符串长度

3.矩阵

matlab 复制代码
A = [1 2 3;4 5 2;3 2 7;4 6 8] %% 3*3矩阵
B = A' %% 矩阵转置
C = A(:) %% 把A矩阵拉长(竖着拉长)
D = inv(A) %% 矩阵的求逆【矩阵必须是方阵】
A * D

E = zeros(10,5,3) %% 生成三维 10*5的0矩阵
E(:,:,1) = rand(10,5)
E(:,:,2) = randi(5,10,5) 
E(:,:,1) = randn(10,5)

1.rand生成均匀分布的伪随机数。分布在(0~1)之间

主要语法:rand(m,n)生成m行n列的均匀分布的伪随机数

rand(m,n,'double')生成指定精度的均匀分布的伪随机数,参数可以 是'single'

rand(RandStream,m,n)利用RandStram(类似于随机种子)生成伪随机数

2.randn 生成标准正态分布的伪随机数(均值为0,方差为1)

主要语法:与rand一样

3.randi 生成均匀分布的伪随机数

主要语法:randi(iMax)在开区间(0,iMax)生成均匀分布的伪随机整数

​ randi(iMax,m,n)在开区间(0,iMax)生成mXn型随机矩阵

​ r = randi(iMin,iMax,m,n)在开区间(iMin,iMax)生成mXn型随机矩阵

4.元胞数组

定义

matlab 复制代码
A = cell(1,6) %%
A{2} = eye(3) %% 生成3*3对角线为1单位矩阵
A{5} = magic(5)%% 生成n阶的幻方矩阵
B = A{5}

5.结构体

matlab 复制代码
books = struct('name',{{'Machine','Data Mining'}},'price,[30,40]')

MATLAB矩阵操作

矩阵定义与构造

matlab 复制代码
A = [1 2 3 5 8 5 4 6]
B = 1:3:9 %%[1,9]步长为3
C = repmat(B,3,1) %% 让B重复三行一列(横着重复3次 竖着重复1次)
D = ones(2,4)%% 生成2*4全1的矩阵

矩阵运算

matlab 复制代码
A = [1 2 3 4;5 6 7 8]
B = [1 1 2 2;2 2 1 1]
C = A + B
D = A - B
E = A * B'
F = A. *B %% 对应项相乘
G = A / B %%相当于A乘以B的逆
H = A./B %% 对应项相除

矩阵下标

注意:下标从1开始

matlab 复制代码
A = magic(5);
B = A(2,3)
C = A(:,4)
D = A(:,4)
[m,n] = find(A > 20)

循环结构

for

结构

for 循环变量 = 初值 : 步长 :终值

执行语句

end

for 循环变量 = 初值 : 终值 (步长 1)

执行语句

end

matlab 复制代码
%% 求和1^2 + 2^2 + 3^3 + 4^2 + 5^2
sum = 0
for n = 1 : 5
    sum = sum + n^2;
end
sum

while

while 条件表达式

执行语句

end

matlab 复制代码
s = 0;
n = 1;
while n<=10
    s = s+n;
    n = n+1;
end
s;

分支结构

if ... else结构

if 条件表达式

语句体

end

if...else...end

if 表达式

语句体1

​ else

语句体2

end

switch ... case ... end结构

switch 表达式(数值或字符串)

​ case 数值或字符串

复制代码
  				语句体;

​ ...

​ otherwise

​ 语句体n;

end

二维平面画图

matlab 复制代码
%% 画图
x = 0:0.01:2*pi;%% 步长0.01
y = sin(x);
    %%figure 建立幕布
figure
plot(x,y); %%绘制当前x,y图
title('y = sin(x)');
xlabel('x');
ylabel('sin(x)');

%%画图
xlim([0 2*pi]) %% 规定区间
x = 0:0.01:20;
y1 = 200*exp(-0.05*x).*sin(x);
y2 = 0.08*exp(-0.5*x).*sin(10*x);
figure
[AX,H1,H2] = plotyy(x,y1,x,y2,'plot');%%共用一个坐标系
set(get(AX(1),'Ylabel'),'String','Slow Decay');
set(get(AX(2),'Ylabel'),'String','Fast Decay');
xlabel('Time (\musec)');
title('Multiple Decay Rates');
set(H1,'LineStyle','--');
set(H2,'LineStyle',':');
相关推荐
故事和你912 分钟前
洛谷-【动态规划2】线性状态动态规划4
开发语言·数据结构·c++·算法·动态规划·图论
不吃土豆的马铃薯5 分钟前
Socket 网络编程实战教程
linux·服务器·开发语言·网络·c++·算法
林熙蕾LXL27 分钟前
传输层-UDP介绍
网络·网络协议·udp
Evand J30 分钟前
【代码介绍】RSSI定位程序,N个锚点、三维空间,使用CKF对轨迹进行滤波,MATLAB代码
matlab·滤波·定位·三维
IronMurphy1 小时前
AI Agent 学习day5 MCP 协议入门与实践
网络·人工智能·学习
小欣加油1 小时前
leetcode 3300 替换为数位和后的最小元素
数据结构·c++·算法·leetcode
晚风予卿云月1 小时前
【枚举】普通枚举
数据结构·c++·算法·竞赛·算法随笔
呉師傅2 小时前
联想ideapad 310-15ABR拔掉充电器使用电池工作花屏问题的解决方法【维修个例】
运维·服务器·网络·智能手机·电脑
不会就选b2 小时前
数据结构之顺序表
数据结构
z落落2 小时前
C# Hashtable 哈希表+SortedList 有序键值对集合
数据结构·散列表