这是一份很简单的入门级的matlab教程
如果你已经有了一定的基础就必要再来看这个浪费时间,这是对于刚刚接触这个软件的以一个新手向的简单学习记录 (代码均来源于网上)##
以下为代码附录,请整体复制到matlab后进行查看
%% I.整体说明
%clc 去除命令行所有内容
%命名的话,必须以字母开头
%clear all 清楚右侧工作区的
%% II.变量命名规则
%%
% 1.变量区分大小写
A=2
a=2
%% III.数据类型
%%
%1. 数字
2+2
10-7
3*5
8/2
% 2. 字符与字符串
s='a'
abs(s) %ASCI 值
char(65)
num2str(65) %数字65
str ='I love matlab'
length(str)
% doc num2str % doc 加函数是查询文档的意思
% 3. 矩阵
A=[1 2 3; 4 5 2;3 2 7]
B=A'% 转置
C=A(:)% 按照列进行拉长
D=inv(A)% 求逆矩阵 非方阵无法求逆
A*D %矩阵相乘
E=zeros(10,5,3)% 10行五列3维 zeros生成全零矩阵
%% rand randi randn 的区别
%%
%1. rand(m,n)生成均匀分布在(0,1)的m行n列伪随机数
%2. randn 生成标准的正态分布的伪随机数(均值为0,方差为1)
% 3.randi (iMax,m,n)生成最大为iMax m行n列随机矩阵
X= randi(5,3,3)
Y= randi([1,5],2,3)
% 4. 元胞数组(可以类比C语言的结构体)
A=cell(1,6) % 一行六列
A{2}=eye(3) % 3*3 对角线为1的矩阵 matlab从1开始
A{5}=magic(5) %生成n阶的幻方:横竖斜三个方向上的数字的总和是相等的
B=A{5}
% 5. 结构体
books = struct('name',{{'Machine Learning','Data Mining'}},'price',[30,40])
books.name
books.name(1) %取出来的是cell
books.name{1} %取出来的是字符串
%% IV. matlab 的矩阵操作
%%
% 1. 矩阵的定义
A=[1 2 3 5 8 5 4 6]
B=1:2:9 % 1为最小值 ,9为最大值,2为步长
C=repmat(B,3,2) % 横着重复三次,竖着重复两次
D=ones(2,4) % 两行四列全一矩阵
% 2. 矩阵的四则运算
A = [1 2 3 4;5 6 7 8]
B = [1 1 2 2;5 6 5 5]
C = A + B%对应相加
D = A - B %对应相减
E = A*B' %只有当B的行数等于A的列数时,才可以做运算
F = A.*B %对应项想乘
G = A / B % A * pinv(B),A乘B逆
H = A./ B %对应位置相除
% 3. 矩阵下表
A=magic(5)
B=A(2,3)
C=A(3,:) % :代表取全部,这行代码代表取第三行
D=A(:,4) %代表取第四列
[m,n]=find(A>20) %找到A矩阵中大于20的序号值
% 4.循环逻辑参考C语言,优快云查语法
%% V MATLAB基础画图操作
% 1.二维平面画图
x=0:0.01:2*pi
y=sin(x)
figure % 建立一个幕布
plot (x,y) % 绘制二维平面图
title('y=sin(x)')
xlabel('x')
ylabel('sin(x)')
xlim([0 2*pi]) % x的范围
%两条曲线图形绘制
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]=plotyy(x,y1,x,y2,'plot')%共用同一个X轴 AX为两个纵坐标 H1,H2为两条曲线本身
set(get(AX(1),'Ylabel'),'String','Slow Decay') %AX1为左侧曲线,AX2为右侧曲线
set(get(AX(2),'Ylabel'),'String','Fast Decay')
xlabel('Time(\mu sec)')
title('Multiple Decay Rates')
set(H1,'Linestyle','--')
set(H2,'Linestyle',':')
%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 %各种方向都变成正方形
% 3. 图形的保存与导出
[x,y,z]=peaks(30);
mesh(x,y,z)
grid