MATLAB 基础语法

1. 清空环境变量和命令

clear all       %清除Workspace中的所有变量
clc             %清除Command Window中的所有命令

2. 变量名

以字母开头,可以由字母、数字、下划线组成,但不能使用标点

3. 数据类型

3.1 字符和字符串

s = 'a';
abs(s)  %ASIIC码 
char(97) %a
length(str)

3.2 矩阵

A = [1 2 3;4 5 2;3 2 7;4 6 8]
B = A'  %转置,行列互换
C = A(:)  %A矩阵拉长,竖着拉长,竖着方向1 4 3 4 2 5 2 6...
D = inv(A)  %求矩阵的逆矩阵,矩阵必须为方阵
A * D  

E = zeros(10,5,3)  %1053维全为零
E(:,:,1) = rand(10,5) %rand(m,n)生成m行n列的均匀分布伪随机数,每个数在(0~1)之间
E(:,:,2) = randi(5,10,5)%randi(iMax,m,n)生成开区间(0,iMax)m行n列的伪随机整数
E(:,:,3) = randn(10,5)%生成105列,标准正态分布的矩阵,方差为1,均值为0

4. 元胞数组和结构体

元胞数组类似盒子,一层一层
A = cell(1,6)%16列,a = b =666右侧的值给左侧
A{2} = eye(3)%eye生成3*3对角线为1的单位矩阵,MATLAB从1开始,2表示第2个盒子
A{5} = magic(5)%magic生成幻方,横竖斜的数字之和均相等
B = A{5}

5. 结构体

  • 相当于字典
  • name相当于python中的键,后面两个字符串相当于python中的值
books = struct('name',{{'Machine Learning','Data Mining'}},'price',[30,40])
books.name %属性 
books.name(1)%小括号取出来的是cell
books.name{1}%{}取出来的是字符串

6. MATLAB矩阵

6.1 矩阵的定义与构造

A = [1 2 3 4;5 6 7 8]
B = 1:2:9 %起始点为1,终止点在此范围内,步长为21 3 5 7 9
C = repmat(B, 3, 1)%重复B 31列
D = ones(2,4)%24列的1

6.2 四则运算

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' %A乘B的转置
F = A.* B  %"."表示对应项相乘
G = A / B   %G*B=A G*B*pinv(B)=A*pin(B) G=A*pinv(B),相当于A乘B的逆,inv(B)就是逆
H = A./B  %对应项相除

6.3 矩阵的下标

A = magic(5) %生成5*5的幻方矩阵
B = A(2,3)  %23列的数
C = A(3,:)  %冒号表示取的全部,表示取第3行
D = A(:,4)  %表示取第4[m,n] = find(A > 20)%找大于20的序号值/矩阵

7 MATLAB基本绘图操作

7.1 二维绘图

x = 0:0.01:2*pi;
y = sin(x);
figure    %建立一个幕布
plot(x,y)
title('y = sin(x)')%标题
xlabel('x')%x标签
ylabel('sin(x)')%y标签
xlim([0 2*pi])%x坐标的值在0~2pi

x = 0:0.01:20;
y1 = 200*exp(-0.05*x).*sin(x);
y2 = 0.8*exp(-0.5*x).*sin(10*x);
figure
[AX,H1,H2] = yyaxis(x,y1,x,y2,'plot');%plotyy表示共用一个坐标
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',':')%:表示点线

在这里插入图片描述

7.2 三维绘图

t = 0:pi/50:10*pi;
plot3(sin(t),cos(t),t)
xlabel('sin(t)')
ylabel('cos(t)')
zlabel('t')
hold on   %同一个幕布绘制多条线
%hold off  %表示不保存当前东西
grid on   %加网格线
axis square %把各个坐标方向变成一个正方形

[x,y,z] = peaks(30);%peaks用于产生双峰函数绘图
mesh(x,y,z)
grid

在这里插入图片描述

8 间隔取值

i=1:8:N;%1到N,间隔8取值
j=ceil(i/8);%ceil表示取大于i/8的最小整数值
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

2021 Nqq

你的鼓励是我学习的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值