matlab基础知识

  1. 清空环境变量及命令

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

(1) 变量名区分大小写

(2)变量名长度不得超过63位 

(3) 变量名以字母开头,可以由字母、数字和下划线组成(不能使用标点,数字不能开头)

(4)变量名应简洁明了,通过变量名可以直观看出变量所表示的物理意义

A = rand(3,5)
rows = size(A, 1)%A的行
cols = size(A, 2)%A的列

3.MATLAB数据类型

(1)数字

2 + 4

10 - 7

3 * 5

8 / 2

 (2)字符与字符串

s = 'a'
abs(s)%1.绝对值&字母转为对应数字(ASCII码)
char(65)%数字转为对应字母
num2str(65)%把数组A中的数转换成字符串表示形式
str = 'I Love MATLAB & Machine Learning.'
length(str)%字符串的长度,包括空格

 

W='hello,'
L='world'
z=[W L]

(3)矩阵 

A = [1 2 3; 4 5 2; 3 2 7]
B = A'%A的转置
C = A(:)%列排序
D = inv(A)%A的逆
A * D

 

E = zeros(10,5,3)%十行五列三维
E(:,:,1) = rand(10,5)
E(:,:,2) = randi(5, 10,5)
E(:,:,3) = randn(10,5)
%%rand、randi和randn的区别?
• 1,rand 生成均匀分布的伪随机数。分布在(0~1)之间
• 主要语法:rand(m,n)生成m行n列的均匀分布的伪随机数
• rand(m,n,'double')生成指定精度的均匀分布的伪随机数,参数还可以
• 是'single'
• rand(RandStream,m,n)利用指定的RandStream(我理解为随机种子)生成伪
• 随机数
• 2,randn 生成标准正态分布的伪随机数(均值为0,方差为1)  主要语法:和上面一样
• 3, randi 生成均匀分布的伪随机整数
• 主要语法:randi(iMax)在开区间(0,iMax)生成均匀分布的伪随机整数
• randi(iMax,m,n)在开区间(0,iMax)生成mXn型随机矩阵
• r = randi([iMin,iMax],m,n)在开区间(iMin,iMax)生成mXn型随机矩阵

 (4)元胞数组

关于cell的创建:

1.跟一般创建举证一样,直接使用C = {A B D E}这种形式,不过这里把"[]"改成了}"{}"

2.使用cell创建cell,C= {C1 C2},这里C1和C2都是cell类型,直接把C1 C2作为一个cell得到的C3是一个1x2的cell数组;使用C3 = [C1 C2],是使用C1和C2的内容来创建cell数组

3.使用cell函数,A=cell(2,2),创建一个空的2x2的cell矩阵.

关于cell的访问:

1.X = C(s)使用这种"()"形式的返回的是cell类型

2.X = C{s}使用这种"{}"形式的返回的是cell中的内容

3.其他的基本上与通常的数组.矩阵访问一样了

4.A{1,1}(2,3:end)访问的是A中的第一个cell里面内容的第2行的第三个元素以后的所有元素

5.A{1,3}.name访问的是A中的A{1,3}cell里面结构的name值

6.cell的图形化显示使用命令cellplot(A)即可

A = cell(1, 6)%创建一个空的1×6的cell矩阵
A{2} = eye(3)
A{5} = magic(5)
%%magic字面意思是魔方,魔术的意思。在matlab中用来生成n阶幻方。比如三阶幻方
就是1-9九个数字,组成一个3*3的矩阵,使得该矩阵无论横、竖还是斜三个方向上
的三个数的和总是相同的。幻方是一个很古老的问题,你试一下就知道了! • magic(n)生成一个n阶幻方,就是把1-n^2排成一个nxn的矩阵,使得矩阵的每行、每
列,以及主、副对角线上面的n个数之和都相等(容易证明,这个和等于n*(n^2+1)/2)。
B = A{5}

 EG1:

EG2: 

 (5)结构体

struct在matlab中是用来建立结构体数组的。通常有两种用法:
s = struct('field1',{},'field2',{},...) 
这是建立一个空的结构体,field1,field2是域名称
s = struct('field1',values1,'field2',values2,...) 
这是在建立结构体的时候就赋值,values1,values2就是针对field1,field2所赋的值。

EG:s = struct('type',{'big','little'},'color',{'red'},'x',{3 4})
  这个结构体有三个域'type','color','x',根据英文意义可以看出分别是类型,颜色和值的意思。类型可以取的值有'big','little',也就是类型有两种,分别是大和小。颜色只有'red'红色,而值x可以是3或者4。

books = struct('name',{{'Machine Learning','Data Mining'}},'price',[30 40])
books.name
books.name(1)
books.name{1}

 4.MATLAB矩阵操作

(1)矩阵的定义与构造

A = [1 2 3 5 8 5 4 6]
B = 1:2:9
C = repmat(B, 3, 1)%B化为三行一列
D = ones(2, 4)

(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'
F = A .* B
G = A / B     % B * G = A
H = A ./ B

A = magic(5)
B = A(2,3)%二行三列
C = A(3,:)%冒号表示所有,即第三行
D = A(:,4)
[m, n] = find(A > 20)%矩阵A大于20的[m,n]表示在第m行第n列大于20

 5.MATLAB矩阵操作

 (1)顺序结构

a=[1 2 3]
b=[4 5 6]
c=a+b

(2)循环结构

for基本格式:

 EG1:

sum=0;
for n=1:5;
sum=sum+n^2;
end

 while基本格式:

EG2: 

EG3: 

 EG4:

sum=1;
 n=0;
while n<=100
sum=sum+n;
n=n+2;
end

 switch...case...end基本格式

mynumber = input('Enter a number:');
switch mynumber
    case -1
        disp('negative one');
    case 0
        disp('zero');
    case 1
        disp('positive one');
    otherwise
        disp('other value');
end

  6.MATLAB脚本与函数文件

(1)脚本文件

myScript

(2)函数文件

mynumber = input('Enter a number:');

output = myFunction(mynumber)

7.MATLAB基本绘图操作

%%plot的用法

将数对排序的一种方法是使用plot 指令。该命令可以带有不同数目的参数。最简单的形式就是将数据传递给 plot,但是线条的类型和颜色可以通过使用字符串来指定,这里用str表示。线条的默认类型是实线型。
下面给出plot指令的一般使用规范。

(1) plot指令使用规范一:plot(x,y)。
语句说明:以x为横坐标,y为纵坐标,按照坐标(x,y)的有序排列绘制曲线。
(2) plot指令使用规范二:plot(y)。
语句说明:其中y为一维实数数组,以1:n为横坐标,y为纵坐标,绘制曲线(n为y的长度)。
(3) plot 指令使用规范三:plot(z)。
语句说明:其中z为一维复数数组,以横轴为实轴,纵轴为虚轴,在复平面上绘制(real(z,),imag(z))的有序集合的图形。

%%subplot(2,2,1)指的是在一个2行2列共4个子图的图中,定位第1个图来进行操作。
%%plot(x,y,'bX','MarkerSize',10','LineWidth',3)以x为自变量(横坐标),y关于x的曲线。以蓝色叉号做标记,叉号大小为10,线宽为3
x=-10:10;
y1=x.^2;
y2=exp(x);
y3=sin(x);
figure
subplot(1,3,1);
plot(x,y1);
subplot(1,3,2);
plot(x,y2);
subplot(1,3,3);
plot(x,y);


(4) plot指令使用规范四:plot(A)。
语句说明:绘制矩阵A的列对它下标的图形。对于m×n的矩阵A,有n个含有m个元素的数对,或是n条有m个点的曲线,且这n条曲线均采用颜色监视器上不同的颜色绘制而成。
(5) plot指令使用规范五:plot(x,A)。
语句说明:绘制矩阵A对向量x的图形。对m×n的矩阵A和长度为m的向量x,绘制矩阵A的列对向量x的图形;如果x的长度为n,则绘制矩阵A的行对向量x的图形。向量北可以是行向量,也可以是列向量。
(6)plot指令使用规范六:plot(A,x)。
语句说明:对矩阵A绘制向量x的图形。对于一个m×n的矩阵A和一个长度为m的向量x,对矩阵A的列绘制向量x的图形;如果x的长度为n,则对矩阵A的行绘制向量x的图形。向量x可以是行向量,也可以是列向量。
(7) plot指令使用规范七:plot(A,B)。
语句说明:对矩阵A的行绘制矩阵B的列的图形。如果A和B都是m×n的矩阵,则将绘制n条由m个有序对连成的曲线。

 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

● hold on 和hold off(默认),是相对使用的

前者的意思是,你在当前图的轴(坐标系)中画了一幅图,再画另一幅图时,原来的图还在,与新图共存,都看得到
后者表达的是,你在当前图的轴(坐标系)中画了一幅图,此时,状态是hold off,则再画另一幅图时,原来的图就看不到了,在轴上绘制的是新图,原图被替换了。

● grid是显示或隐藏坐标轴网格线,grid on是打开网格,grid off是关闭网格

(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=-0.5*pi:0.001:0.5*pi;
y=x+sin(x)+exp(x);%exp(x)=e^x
figure
plot(x,y)
xlabel('x')
ylabel('y')
title('y=x+six(x)+exp(x)')
xlim([-0.5*pi 0.5*pi])

 

%%一个幕布绘制多条线
%%
1、x=0:pi/100:2*pi; 表示自变量的取值范围;
2、[AX,H1,H2] = plotyy(x,y1,x,y2,'plot');
返回三个参数,AX是坐标轴的句柄,AX(1) 是左边的纵轴, AX(2) 是右边的纵轴;H1和H2保存的是图形句柄;和set相关;
3、set(get(AX(1),'Ylamabel'),'慢衰','Slow Decay');
set用来设置坐标轴的形式,名字或刻度线等等;AX(1)就是设置左边的纵轴;
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');
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',':')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值