MATLAB学习心得_matlab学习心得
MATLAB学习心得由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“matlab学习心得”。
MATLAB学习心得
MATLAB命令
要查询某一命令是在搜寻路径的何处,可用which命令: >>which fact E:studycodematlabfact.m
what 列出当前目录下的.m文件和.mat who:显示当前所有变量的简单列表 whos:显示当前所有变量的详细信息
disp打印;clc清屏;clf清图;
close all 关闭所有图形; clear 清除所有变量
esc 清除一行ctrl+c中断程序运行
tic 开始计时;shift+enter换行;toc停止计时 % 行注释; %{……%} 块注释
%% + 空格 + 模块名添加程序块使得模块化 三个小黑点连续换行;或者shift+enter语句换行 cd 路径改变当前目录
elseif没有空格 switch
case(不需要用break跳出)...otherwise end
funtool函数计算器
eval('MATLAB表达式')执行一个MATLAB表达式 example: >>for i=1:3 >>eval(['book',num2str(i),'=',num2str(2*i-1)]);>>end book1 = 1 book2 = 3 book3 = 5
MATLAB求方差
var(x)= var(x,0)除以n-1 var(x,1)除以n
MATLAB绘图
matlab语法与绘图文件夹,详细介绍了MATLAB基本运算、MATLAB基本平面绘图、MATLAB基本立体绘图
x=linspace(-2, 2, 25);% 在x轴上取25点 y=linspace(-2, 2, 25);% 在y轴上取25点
[xx,yy]=meshgrid(x, y);% xx和yy都是25x25的矩阵
zz=xx.*exp(-xx.^2-yy.^2);% 计算函数值,zz也是25x25的矩阵 mesh(xx, yy, zz);surf(xx, yy, zz);
% 画出立体网状图 % 画出立体曲面图 figure(n):打开编号为n的图形窗口
subplot(m,n,p):分割图形显示窗口为m*n块,p为子块编号 axis([xminxmaxyminymax]):给出区域
text(x,y,'字符串')在坐标(x,y)处显示字符串 gtext('字符串')通过鼠标选择说明文字的位置 title('图标标题')xlabel('x坐标轴名称')ylabel('y坐标轴名称')legend('','',''...)图例名 grid on/off hold on/off 矩阵运算
For vectors, ALL(V)returns logical 1(TRUE)if none of the elements of the vector are zero.所有的数都非零返回1 ANY True if any element of a vector is a nonzero number or islogical 1(TRUE).ANY ignores entries that are NaN(Not a Number).sum(A):按列求和
repmat(A,m,n):将矩阵复制m*n份
矩阵变换 rot90逆时针旋转90度flipud上下翻转fllplr左右翻转
单元数组可以存放不同的数据类型
>>A{1,1}=magic(3);A{1,2}='djk';A{2,1}=sym('sin(x)+cos(x)');A = [3x3 double] 'djk' [1x1 sym ] [] cellplot(A):图形化显示单元数组的结构
行简化阶梯型矩阵 rref(A)求矩阵的秩 rank(A)det(A)求行列式 [V D] = eig(A):
D对角线上的元素为A的特征值,V为相对应的特征向量构成的矩阵 当V满秩时,A可对角化,inv(V)*A*V = D 拟合和插值
cftoolSurface Fitting Tool.polytool(x,y,2)多项式拟合 rstool(x,y,'model',alpha)
最小二乘法线性拟合 function zxecf(x,y)clear z = polyfit(x,y,1);
f = poly2sym(z);poly2str(z,'x');plot(x,y,'r*');hold on ezplot(f,[xminxmax]);
// ezplot画符号函数
拟合工具箱 %{ yy = polyval(z,x);plot(x,y,'r*',x,yy);%}
函数的3种使用方法
利用function直接定义函数,要求文件名和函数名一致,函数文件名不能由数字组成 函数句柄实现对函数的间接调用 fhandle = @M文件名
匿名函数:fhandle = @(arglist)expr由输入参数列表arglist和表达式expr确定的函数创建句柄并将此句柄返回给变量fhandle 内联函数:f = inline('expr','arglist')example: >>fhandle = @(x,y)(sin(x)+cos(y)+1)>>fhandle(pi/2,0)3 >>f = inline('sin(x)+cos(y)+1','x','y');>>f(pi/2,0)3 function out=f(x,y)out = sin(x)+cos(y)+1;
解方程组
解线性方程组 solve 解微分方程组dsolve 解数值解龙哥库塔 ode y=dsolve('Dyt=y0*y')不明白
符号表达式
syms一次可定义多个符号变量sym建立单个符号 y=sym('sin(x)+cos(x)');diff(f,x,n)求符号表达式f关于x的n阶导数
int(f,r,x0,x1)f为积分符号表达式,r为积分变量,x0,x1为积分上下限 example: syms x y;f = 2*x+y;h = subs(f,{x,y},{1:3,5:7});% h = [7,10,13];
多项式
系数矩阵p 符号表示:s=poly2sym(p)poly2str(p,'x')以字符串的形式查看以x为变量的函数
系数表示:sym2poly(s)多项式求值:polyval(p,数或矩阵)多项式求导polyder(p)求积分polyint(p)r = poly(p)求矩阵的特征多项式的系数 roots(r)求多项式的根即p
MATLAB编程
输入输出 x=inputdlg('输入说明文字');x=str2num(cell2mat(x));
age=input('how old are you:')
disp(age)fprintf('my age is %d.n',age);% 和C语言里的printf差不多
data.txt: 1 2 3 4 5 6 7 8 9
fid = fopen('data.txt','r');line = fgetl(fid);str2num(line);
A = load('data.txt');
save 默认将当前所有变量存到当前目录下的MATLAB.mat save mywork 默认存成.mat格式
% 存到A中,再对A进行操作
% 读取一行 % 得到 1 2 3 % 有没有类似C语言的输入
savemydata.mat v1 % Use with literal filename save 'my data file.mat' v1 % Use when filename has spaces save(savefile, 'v1')% Use when filename is stored in a variable load 装载当前目录下的MATLAB.mat load new.txt / load('new.txt')当前目录下不支持中文 load('路径名+文件名',变量名列表)xlsread('路径名+文件名')读取excel文件