MATLAB学习笔记

%% 一、清空环境变量及命令
clear all %清除workspace中的所有命令
clc       %清除command window中的所有命令

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

%%
% 2.变量名长度不超过63个字符
abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1=1


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

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

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

%%
% 2.字符和字符串
s = 'a'
abs(s) % ascll码
char(65) % 字符串
num2str(65) %将数字转换为字符数组
str='I love MATLAB & mechine learning'

length(str) % 空格也占字符数

doc num2str % 打开文档

%%
% 3.矩阵
A=[1 2 3;4,5,6;7 8 9;1,2,3]; % 用空格或逗号隔开,每行用;隔开
B=A';                       %转置A
C=A(:);  % 竖着拉长矩阵A
A2=[1 2 3;4 5 2;3 2 7;]
D= inv(A2) % 求逆矩阵,必须是方阵
A2*D

E=zeros(10,5,3) %创建一个3维的10行5列的零矩阵
% rand生成的伪随机数为(0,1)之间的
E(:,:,1) = rand(10,5) %返回一个10*5的均匀分布的伪随机数矩阵
% randi生成均匀分布的伪随机整数
E(:,:,2)=randi(3,10,5) % 生成10*5大小在(0,3]之间的伪随机整数矩阵
% randn生成标准正态分布的伪随机数(均值为0,方差1)
E(:,:,3)=randn(10,5)
%%
% 4.元胞数组
A=cell(1,6)  % 生成一个类型为 double 的1*6的元胞数组
A{2}=eye(3)  % eye(n) 返回一个主对角线元素为 1 且其他位置元素为 0 的 n×n 单位矩阵。
% magic(n) 返回由 1 到 n平方 的整数构成并且总行数和总列数相等的 n×n 矩阵。n大于或等于 3,每行每列及对角线上的和相等
A{5}=magic(5)  
B=A{5}
C=A{2}

%%
% 5.结构体
books= struct('name',{{'machine learning','Data Mining'}},'price',[30,40])
books.name
books.price
books.name(1)
books.name{1}
books.price(1)

%% 四、矩阵操作
%%
% 1.矩阵的定义与构造
A=[1 2 3 4;5 6 7 8;]
B=1:2:9  % 生成1到9步长为2的矩阵
C=repmat(B,3,2) %把B重复3行2列
D=ones(2,4) % 生成一个2行4列的全1矩阵

%%
% 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 % A和B的对应项相乘
G = A / B  % A/B 相当于就是A乘以B的逆,G*B=A  SG*B*pinv(B)=A*pinv(B)
H = A ./ B % A、B对应项相除

%%
% 3.矩阵的下标
A= magic(5)
B= A(2,3)
C= A(3,:)
D= A(:,4)
[m,n]= find (A > 20) %找大于20的序号值/矩阵,按列查找的,该数的坐标行值保存在m向量,列坐标保存在n向量中
[x,y] = find ( A==20 ) 

%% 五、MATLAB逻辑与流程控制
%%
% 1. 顺序结构

%%
% 2. 循环结构
% for循环 for i=1:2:11 1到10步长为2
sum=0;
for i=1:5
    p=1;
        for j=1:i
            p=p*j;
        end
    sum=sum + p
end

% while循环
%{ 
while 条件表达式
         执行语句1
         ...
         执行语句n
         end
%}

%%
% 3. 分支结构
% if ... end 结构
%{
if 条件表达式
    语句
end
%}
% if ... else ...end
%{
if 表达式
    语句1
else
    语句2
end
%}
% switch 语句
%{
switch 表达式
    case 数值或字符串1
        语句1;
    case 数值或字符串2
        语句2;
    otherwise
        语句n;
end
%}

%% 五、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 坐标轴范围

%{
颜色选项参数
红:r  粉红:m
绿:g  青:c
蓝:b  白:w
黄:y  黑:k

线形选项参数
实线:-
虚线:--
冒号线: :
点画线: -.

数据标记点选项参数
点    .      上三角  ^
十字号 +      下三角 v
圆圈   o      左三角 <
星号   *      右三角 >
叉号   x      五角星 p
正方形 s      六角星 h  
菱形   d

%}

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); %绘制y1和y2曲线,其中plotyy(X1,Y1,X2,Y2,f) 使用指定的绘图函数来绘制数据。
% 返回的AX是两个Axes数组,H1、H2是两条Line
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')
hold on  % 保留当前坐标区中的绘图,从而使新添加到坐标区中的绘图不会删除现有绘图
hold off % 将保留状态设置为 off,从而使新添加到坐标区中的绘图清除现有绘图并重置所有的坐标区属性。
grid on % 显示 gca 命令返回的当前坐标区的主网格线。主网格线从每个刻度线延伸。
grid off % 删除当前坐标区或图上的所有网格线。
axis square % axis设置坐标轴范围和纵横比

%%
% 3.图形的保存与复制




简单易懂,最适合傻瓜级初学者! 第一章 简介 1.1 计算机应用与工程问题 1.2 工程问题的解决方式 1.3 认识你/你的电脑工作环境 第二章 MATLAB 简介 2.1 什么是MATLAB 2.2 基本功能 2.2.1 MATLAB 的视窗环境 2.2.2 简易数学 2.2.3 变数 2.2.4 其它功能 2.3 线上说明 2.4 阵列与矩阵 2.4.1 简易阵列 2.4.2 建立阵列 2.4.3 阵列运算 2.4.4 特殊矩阵 2.4.5 阵列运算的特色 2.5 简易绘图 2.6 输入及输入 2.6.1 交谈式的输入 2.6.2 输出格式 2.7 如何撰写 MATLAB 程式 2.7.1 如何在自己的目录执行程式 2.8 储存及读取数据 2.9 其它绘图功能 2.10问题范例:涡轮螺旋桨引擎 第三章 进阶的绘图功能 3.1 绘图选项 3.1.1 横轴和纵轴的控制 3.1.2 子图 3.1.3 图形放大及缩小 3.1.4 函数分布的快速绘图 3.1.5 列印功能 3.1.6 其它的功能 3.2 三维绘图 3.1.1 三维的曲线绘图 3.1.2 曲面及等值线绘图 第四章 MATLAB函数 --- 语音讯号分析 4.1 数学函数 4.1.1 常见数学函数 4.1.2 三角和双曲线函数 4.1.3 复数 4.1.4 多项式函数 4.2 数据分析函数 4.2.1 极值、平均、总和、连乘及排序 4.2.2 变异数 4.2.3 长条分布函数 4.3 选择指令及函数 4.3.1 关系及逻辑运算 4.3.2 if-else-end 语法 4.4 范例问题:语音讯号分析 4.5 使用者自定函数 4.6 乱数 4.6.1 均匀乱数 4.6.2 常态乱数 4.7 矩阵运算函数 4.8 回圈 4.8.1 For 回圈 4.8.2 While 回圈 第五章 线性代数与矩阵 --- 蛋白质分子量分析 5.1 矩阵运算 5.1.1 基本矩阵运算元 5.1.2 矩阵多项式 5.2 范例问题:蛋白质的分子量计算 5.3 矩阵函数 5.3.1 反矩阵、矩阵秩与行列式 5.3.2 特徵值与特徵向量 5.3.3 矩阵分解 第六章 解联立方程式 --- 电路分析 6.1 利用矩阵解法 6.2 范例问题:电路分析 第七章 内插及曲线拟合 --- 机械手臂路径 7.1 内插 7.1.1 一维内插 7.1.2 二维内插 7.1.3 Spline 内插 7.2 范例问题:机械手臂路径 7.3 曲线契合 7.3.1 线性回归 7.3.2 多项式回归 7.3.3 多项式契合及函数计算 第八章 解方程式根 8.1 多项式的根 8.2 非线性方程式的实根 第九章 数值微分及积分 --- 管流分析 9.1 数值积分 9.1.1 梯形法 9.1.2 二次函数法 9.2 范例问题:管流分析 9.3 数值微分 9.3.1 差分表示法 9.3.2 差分函数 第十章 解常微分方程式 --- 发动机性能分析 10.1 微分方程式 10.2 阮奇-库达方法 10.3 范例问题:飞机发动机的加速性能分析 10.4 高阶常微分方程式 第十一章 符号运算 --- 气象气球 11.1 符号代数 11.1.1 符号表示式 11.1.2 数学式的化简 11.1.3 符号表示式的运算 11.2 解方程式 11.2.1 一般方程式 11.2.2 常微分方程式 11.3 微分与积分 11.3.1 微分 11.3.2 积分 11.4 范例问题:气象气球
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

A Tiger

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值