matlab基础知识

来源:互联网 发布:mac如何设置分辨率 编辑:程序博客网 时间:2024/05/16 17:34

我之前做的一个ppt贴在csdn博客,分享给搜索到需要的网友们。

数据分析

max(x,dim):求最大元素
min(x,dim):求最小元素
median(x,dim):求中位数
mean(x,dim):求平均值
std(x,flag):求标准差,flag指明标准差的不同计算方式
prod(x,dim):求积
sum(x,dim):求和
cumsum(x,dim):求累计和
cumprod(x,dim):求累计积
cov(x):求协方差
cov(x,y):求相关阵
corrcoef(x):求两随机变量的协方差
corrcoef(x,y):求两随机变量的相关系数

sort(x):以升序排列元素

微积分的分析

limit:函数的极限

fminbnd:求单变量函数的极值

diff:求函数的微分

quad:求函数的积分

trapz:梯形法数值积分

int:符号函数的积分

taylor:泰勒级数展开

function[a0,an,bn]=mfourier(f):傅立叶级数展开


非线性方程的数值解

fsolve:最小二乘法

fzero:零点法

代数方程符号求解

solve

常微分方程的数值求解

solver

求常微分方程的符号解

dsolve

(1)数的输入

a=518

(2)复数的输入

b=5+18i

(3)数组的输入

X=[1 2 3;4,5,6;7,8,9]%行之间用分号隔开,列之间用空格或逗号

(4)等待键盘的输入命令

n=input(“请输入浮动系数h= ”);

注:变量名开头必须是英文字母,后面的字符可以是英文、数字或下划线,但不包括空格或标点。


矩阵大小的测试和定位

d=numel(A)%测试矩阵A的元素数,该函数用于计算数组中满足指定条件的元素个数。若是一幅图像,则numel(A)将给出它的像素数。

[n,m]=size(A) %测试A中的行(n),列(m)的数

[i,j]=find(A>3);%找出A中大于3的元素所在的函数和列数

i’,j’:%i,j的转置


A(2,:):取出第A的第二行的所有元素

A([1 3],:):取出A的第一,三行的所有元素

A(2:3,1:2):取出A的第二、三行与第一,二列交叉的元素

A([1 3],:)=A([3 1],:)    %将A的第一行和第三行交换

A(2,:)=4;%将A的第二行的所有元素用4取代

A(find(A==3))=-3;%将A中等于3的所有元素换为-3

A(2,:)=[];%删除A的第二行,让第二行的所有元素置为空

diag(A,k); %提取矩阵A的第k条对角线上的元素

tril(A,k);%抽取矩阵A的第k条对角线下面的部分

triu(A,k);%抽取矩阵A的第k条对角线上面的部分

注:“:”表示“全部”的意思(求和举例sum(sum(a))==sum(a(:)))

flipud(A);%对A进行上下翻转

fliplr(A);%对A进行左右翻转

rot90(A);%对A逆时针旋转90度


A=eye(n);%产生n维单位矩阵

A=ones(n,m);%产生n*m维的全1矩阵

A=zeros(n,m);%产生n*m的全0矩阵

A=rand(m,n);%产生n*m的随机矩阵(元素在0-1之间)

randn(m,n);%产生m*n维正态度随机矩阵

B=logspace(a,b,n);%在a,b之间产生n个对数等分向量

diag(a,b,n);%返回n阶以a,b,c,d……为对角线元素的矩阵

hilb(n);%返回n阶Hilbert矩阵,其元素为H(i,j)=1/(i+j-1)

magic(n);%产生n阶魔方矩阵

randperm(n);%产生1-n之间整数的随机排列


+,-,*,/(右除),\(左除),例如6/3=2,6\3=0.5;

6^2;%6的2次方

sqrt(3):%3的算术平方根

exp(3):e的3次方

log(4):4的自然对数(以e为底),log10(4)表示以10为底



A’:A的转置

det(A):A的行列式,A必须是方阵

rank(A):A的秩

inv(A):A的逆

eig(A):A的本征值

[X,D]=eig(A);A的本征矢量X及本征值D

trace(A);A的迹,等于A的对角线元素之和

3*A;常数与矩阵相乘

A+B:表示矩阵加法,必须是同维矩阵

A-B:表示矩阵减法,必须是同维矩阵

A/B:表示矩阵A左除矩阵B,不等同于A./B

A\B:表示矩阵A右除矩阵B,不等同于A.\B

A^2:相当于A*A,不等同于A.^2


(存储)save data a b c%将变量a,b,c存到data.mat文件中

(调用)load data%将data.mat文件中的所有变量加载到工作空间

(列出工作空间的所有变量)Whos

(检查内存变量)who

(帮助文档)help sqrt %将显示平方根sqrt的功能和使用方式

(清除变量)clear data

(清屏)clc

(关闭退出)exit或quit

绘制二维图形

(基本绘图函数plot)

plot(x,y)

注:可以在括号中加入参数设置颜色,线形等

hold on表示继续在当前图形上画图

hold off 在当前图形上结束画图

fplot函数

(符号函数ezplot)

(绘制对数图形函数loglog,semilogx,semilogy)

图形修饰与控制 axis square    axis equal   title()    axis([xmin,xmax,ymin,ymax])     xlabel()     ylabel()

text(x,y())     grid on  grid off   legend()  subplot()


绘制三维图形

plot3,comet3,fill3

绘制三维网格图函数mesh、meshc、meshz、meshgrid

绘制三维曲面图

surf、surfc函数

绘制三维旋转面图

cylinder函数

绘制三维球面图

sphere函数




(1)字符型char和字符串型string

a=‘management’, a=char(‘management’)

(2)数值型

整型、单精度、双精度和稀疏矩阵等。在matlab中,整型要转化称双精度才能进行数学运算。

稀疏矩阵是一种特殊矩阵,它含有大量的零元素。

matlab只对矩阵中的非零元素进行存储和计算,可以用sparse创建稀疏矩阵

(3)单元数组

matlab中矩阵或数组只能保存相同类型或相同大小的数据,而单元数组允许把不同类型的matlab数组保存在不同的单元中。单元数组中的每一个元素称为一个单元(cell)

单元数组有两种创建方式,一种是单元数组的各个元素直接赋值;另一种是先用cell函数为单元数组分配空间,然后再进行赋值

(4)结构

结构structure也可以保存不同类型的数据,它由一组被称为域(fields)的变量构成,数据存于域中。创建方法也有两种,一种是直接赋值;另一种是利用struct函数。

(5)函数句柄

funhandle=@function_name


数据输出

fprintf函数

disp命令

数据输入

(1)利用m文件产生数据文件

(2)fscanf命令

(3)input命令

在缺省的状态下MATLAB 以短格式short 格式显示计算结果,可以用MATLAB 命令窗口中format 指令来改变数字的显示格式由于MATLAB

以双精度执行所有运算显示格式的设置仅影响矩阵的显示不影响矩阵的计算与存储如果矩阵的所有元素都是整数则矩阵以不带小数点的格式显示如果有一个元素不是整数则有几种输出格式默认格式为short 格式只显示5 位,有效数字其他的显示格式可显示更多的有效数字还可用科学表示法

默认short 格式

format short e 短格式科学表示

format long 长格式

format long e 长格式科学表示

format bank 银行格式

format hex 十六进制格式

format + +格式用于显示大矩阵的紧凑格式+ 空格分别表示正数负数和零

format compact(紧凑格式)



关系及逻辑运算

a=2<4;---------------------------1

a=1<4;---------------------------0

d=4~=3;--------------------------1

c=2==3;---------------------------0

a=3&0

a=3|0

a=xor(4,3), 异或运算,很有用,在信号传输控制这方面

选择、循环、转向和返回

if(condition)

block

else if(condition)

block

end

-----------------------------------------------------------

for 循环变量=表达式1:表达式2:表达式3

block

end

-----------------------------------------------------------------

while 循环

while(条件)

block

end

---------------------------------------------------------------

switch分支语句

尽量避免使用循环,而是用向量或矩阵

如果要使用循环,在循环语句中也要尽量对向量、矩阵或数组预先用ones或zeros函数进行内存分配

尽量使用matlab内部函数或工具箱函数。绝大多数常见的数学计算都可以在matlab中找到相应的函数命令



在实际中,可以使用tic(启动秒表)和toc(停止秒表)测试程序运行所花费的时间

注:我觉得这些前辈的建议很受用!















0 0
原创粉丝点击