Matlab笔记

Matlab变量命名规则

1.变量名区分大小写
2.变量名长度不超过63位
3.变量名以字母开头,可以由字母,数字和下划线组成,但不能使用标点
4.变量名应简洁明了,见名知意

Matlab数据类型

1.数字
2.字符串
3.矩阵
4.元胞数组
5.结构体

Matlab矩阵操作

1.矩阵的定义与构造
2.矩阵的四则运算
3.矩阵的下标

Matlab逻辑与流程控制

1.if…else…end
2.for…end
3.while…end
4.switch…case…end

Matlab脚本与函数文件

1.脚本文件
2.函数文件

Matlab基本绘图操作

1.二维平面绘图
2.三维立体绘图
3.图形的保存与导出

Matlab文件导入

1.mat格式
2.txt格式
3.xls格式
4.csv格式

%% 1.清空环境变量及命令
clear all %清除Workspace中的所有变量
clc       %清除Command Window中的所有命令

%% 2.变量命名规则
%%
% 1.变量名区分大小写
A = 2
a = 3

%%
% 2. 变量名不超过63位
% 加上注释快捷键 Ctrl+t 取消注释快捷键 Ctrl+r

%%
%3. 变量名以字母开头,可以由字母,数字和下划线组成,但不能使用标点
% 3A = 4
% .a = 5
% /b = 5
a_2 = 3

%%
% 4. 变量名应简洁明了,通过变量名可以直观看出变量所表示的物理意义
A = rand(3,5)
rows = size(A,1)
cols = size(A,2)

%% 3.MATLAB数据类型
%%
%1. 数字
2+4
10-7
3*5
8/2

%%
% 2. 字符与字符串
s = 'a'
abs(s)        %97
char(65)      %A
num2str(65)   %'65'

str = 'I Love MATLAB & Machine Learning.' % 不区分char 和 string
length(str)   %33

%%
% 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)  %3个10*5的二维数组
%rand(m,n)生成m行n列的均匀分布的伪随机数
%randn 生成标准正态分布的伪随机数(均值为0,方差为1)
% randi(iMax,m,n)在开区间(0,iMax)生成mXn型随机矩阵
E(:,:,1) = rand(10,5)
E(:,:,2) = randi(5,10,5)
E(:,:,3) = rand(10,5)

%%
%4.元胞数组
%A = 
%
%    []    []    []    []    []    []
A = cell(1,6)
A{2} = eye(3) %单位矩阵
%M = magic(n)
%生成一个n*n的矩阵,
%矩阵元素是由整数1到n^2组成的并且任何行任何列的和都相等,
%阶数n必须是大于等于3的标量。
A{5} = magic(5)
B = A{5}

%%
% 5.结构体
books = struct('name',{{'Machine Learning','Data Mining'}},'price',[30 40])
books.name
books.name(1) %元胞数组形式
books.name{1} %取值 

%% 4.MATLAB矩阵操作
A = [1 2 3 5 8 5 4 6]
B = 1:2:9  %1到9每隔两位数取一次
%拷贝 3 行 1 列
% C =
% 
%      1     3     5     7     9
%      1     3     5     7     9
%      1     3     5     7     9
C = repmat(B,3,1) 
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  G*B*pinv(B) = A*pinv(B) G = A*pinv(B)
H = A ./ B

%%
%3.矩阵的下标
A = magic(5)
B = A(2,3)
C = A(3,:)  %取出第三行
D = A(:,4)  %取出第四列
[m,n] = find(A > 20) %m和n表示数字所在的行列

%% 5.MATLAB逻辑与流程控制
%%
% 1.if...else...end
A = rand(1,10)
limit = 0.75;
B = (A>limit);
if any(B)
    fprintf('Indices of value > %4.2f:\n',limit);
    disp(find(B))
else
    disp('All values are below the limit')
end

%%
%2.for...end
k = 10;
hilbert = zeros(k,k);       %Preallocate matrix

for m = 1:k
    for n = 1:k
        hilbert(m,n) = 1/(m+n-1);
    end
end
hilbert

%%
%3.while ... end
n = 1;
nFactorial = 1;
while nFactorial < 1e100
    n = n + 1;
    nFactorial = nFactorial + n;
end
n

%求阶乘
factorial(69)
factorial(70)
%求阶乘
prod(1:69)
prod(1:70)

%%
%4. swicth ... 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.脚本文件
% 新建一个.m文件 文件名为myScript
myScript

%%
% 2.函数文件
mynumber = input('Enter a number');
myFunction(mynumber)


%%
% 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-2*pi

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',':')

%%
% 2.三维立体绘图
t = 0:pi/50:10*pi;
plot3(sin(t),cos(t),t)
xlabel('(sin(t))')
ylabel('(cos(t))')
zlabel('t')
grid on
axis square

%% 
% 3.图形的保存与导出
% (1) Edit -> Copy Figure
% (2) Toolbar -> Save
% (3) print('depsc','-tiff','-r300','picture1')
% (4) File -> Export Setup 不会影响label

%% 8. MATLAB文件导入
%%
% 1.mat格式
save data.mat x y1 y2
clear all
load data.mat

% 2.txt格式
M = importdata('myfile.txt');
S = M.data;
save 'data.txt' S -ascii
T = load('data.txt')
isequal(S,T)

%%
% 3. xls格式
xlswrite('data.xls',S)
W = xlsread('data.xls');
isequal(S,W)

xlswrite('data.xlsx',S)
U = xlsread('data.xlsx');
isequal(S,U)

%% 
% 4.csv格式
csvwrite('data.csv',S)
V = csvread('data.csv');
isequal(S,V)



Matlab编程习惯与风格

1.变量的命名规则
2.Cell Mode
3.程序发布(Publish)

Matlab程序调试

断点调试
-设置/清除断点
-进入/退出调试模式
-循环体的调试

Matlab图像对象和句柄

图像对象:用于界面制作和数据可视的基本绘图元素
图形对象是图形系统中最基本,最底层的单元
图形对象的属性由属性名和属性值两部分组成
句柄是图形对象的标识代码,句柄含有图形对象的各种必要的属性信息
根屏幕的句柄为0,图形窗口的句柄为整数,其他对象的句柄为浮点数
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值