[MATLAB]:基础知识学习

前言

多少事,从来急;天地转,光阴迫。
一万年太久,只争朝夕。 ——毛泽东《满江红·致郭沫若同志》


一、MATLAB结构

1、元胞数组

% 4.元胞数组
A = cell(1,6)	%a=b=666
A{2} = eye(3)	%1开始,python 0开始,索引
A{5} = magic(5)	%魔方:每行每列相加的和都相同
B = A{5}
  • 执行结果:
    [MATLAB]:基础知识学习_第1张图片

2、结构体

% 5.结构体
books = struct('name',{{'Machine Learning','Data Mining'}},'price',[30,40])
books.name  	% 属性
books.name(1)   % 小括号取出来的是 cell
books.name{1}   % 大括号取出来的是 字符串
  • 执行结果
    [MATLAB]:基础知识学习_第2张图片

二、MATLAB的矩阵操作

1、矩阵的定义与构造

% 1、矩阵的定义与构造
A = [1 2 3 4 5 6]
B = 1:3:9
C = repmat(B,3,1)
D = ones(2,4)
  • 执行结果:
    [MATLAB]:基础知识学习_第3张图片

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  % G * B = A   G * B * pinv(B) 相当于A乘以B的逆矩阵
H = A./ B  % 前面带点的表示对应项相除
  • 执行结果:
    [MATLAB]:基础知识学习_第4张图片

3、矩阵下标

A = magic(5)
B = A(2,3)
C = A(3,:)
D = A(:,4)
[m,n] = find(A > 20)    %找大于20的序号值/矩阵
  • 执行结果:
    [MATLAB]:基础知识学习_第5张图片

三、程序设计

1、for循环结构:

% for循环结构:
% for 循环变量=初值 : 步长 : 终值(步长的默认值为1,可以省略)
%     执行语句1
%     ……
%     执行语句n
% end
sum = 0;
for n = 1:5
    sum = sum + n^2;
end
  • 执行结果:
    [MATLAB]:基础知识学习_第6张图片

2、for循环中嵌套for循环

% for循环中可以嵌套for循环
sum = 0;
for i = 1:5;
    p = 1;
        for j = 1:i
        	p = p * j;
        end
    sum = sum + p;
end 
  • 执行结果:
    [MATLAB]:基础知识学习_第7张图片

3、九九乘法表

for i=1:9
    for j=1:9
        a(i,j) = i.* j;
    end
end
  • 执行结果:
    [MATLAB]:基础知识学习_第8张图片

4、求1到10的和

% 110的和
s = 0;
n = 1;
while n<=10
    s=s+n;
    n=n+1;
end

5、求1~100的奇数和

x=1;
sum=0;
while x<101
    sum = sum + x;
    x = x + 2;
end

四、MATLAB基本绘图操作

1、二维平面绘图

%%
% 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轴的值的范围
  • 执行结果:
    [MATLAB]:基础知识学习_第9张图片
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',':')     %点划线
  • 执行结果:
    [MATLAB]:基础知识学习_第10张图片

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  	%限制作用
  • 执行结果:
    [MATLAB]:基础知识学习_第11张图片

3、图形的保存和导出

% 3、图形的保存和导出
% (1) Edit    -> Copy Figure
% (2) Toolbar -> Save
% (3) print('-depse','-tiff','-r300','picturel')
% (4) File -> Export Setup

4、双峰函数

[x,y,z] = peaks(30);    %双峰函数
mesh(x,y,z)
grid
  • 执行结果:
    [MATLAB]:基础知识学习_第12张图片

5、图像分析

x=linspace(0,2*pi,60);

subplot(2,2,1)
plot(x,sin(x)-1);
title('sin(x)-1');
axis([0,2*pi,-2,0])

subplot(2,1,2)
plot(x,cos(x)+1);
title('cos(x)+1');
axis([0,2*pi,0,2])

subplot(4,4,3)
plot(x,tan(x));
title('tan(x)');
axis([0,2*pi,-40,40])

subplot(4,4,8)
plot(x,cot(x));
title('cot(x)');
axis([0,2*pi,-35,35])
  • 执行结果:
    [MATLAB]:基础知识学习_第13张图片

你可能感兴趣的:(MATLAB学习,matlab,算法,开发语言)