MATLAB实用命令
前言
总结MATLAB常用命令
一、绘图
1.标注文字 text
text(x,y, str) , x,y 为坐标, str为字符串。
如果str中含有变量,用num2str( )函数
如:
str=['sin(2)=' num2str(sin(2))];
matlab num2str怎么设置小数点位数
设置位数和换行,num2str(num, ‘%1.2f’) , { [ 第一行] , [第二行] }, 如:
str={ [ '\pi=' num2str(pi,'%1.2f') ] ,
[ '2\pi=' num2str(2*pi, '%1.2f') ] } ;
2.图例 legend
‘position’ 设置位置
MATLAB中legend位置
legend高级用法
h1 = plot(x1,y1)
h2 = plot(x2,y2)
h3 = plot(x3,y3)
legend([h1,h2],'h1','h2') % 只对某几根曲线写图例
3.透明 alpha
h=surf(x,y,z);
alpha(z,0.5); % 0.5是系数,从0-1,越接近0越透明
4.图片保存(清晰度)
a>print: 可控制尺寸或分辨率
可直接查看参考页。
% 指定要保存的图像
fig=figure;
plot(1:10);
print(fig, filename); % print(fig,filename,'-dmeta') , .emf格式
% filename: 字符串,可以是地址,如 ['D:/fig/' 'figname']
% 保存的结果会是.ps格式(打印机),点击会生成pdf文件
% 也可指定格式保存,如'-dpng','-deps'
% 以指定的分辨率保存图像
b>saveas: 使用150dpi的分辨率
c>另存为:按屏幕分辨率和屏幕大小生成图像。
5. 设置字体大小的常用命令
fig=figure(1);
% 1. 图例 legend
leg=legend('name');
set(leg,'FontName','Times New Roman','FontSize',20);
% 2. 坐标轴标签 label
xlabel('xlabel','FontName','Times New Roman','FontSize',20);
% 3. 坐标轴刻度
set(gca,'FontName','Times New Roman','FontSize',18);
% 4. 标记点 (其他blog摘抄)
plot(x,y,'--p','MarkerSize',10,'MarkerFaceColor','m','MarkerEdgeColor','b','LineWidth',1.5)
% 5. latex解释器
'Interpreter','latex'
% 6. 部分斜体
xlabel('x \rm{(m)}','FontAngle','italic'); % \rm{}包围的部分是整体
6. title
一件小事,title(‘title’,‘position’,[x,y]); %
当我想把标题放在图下面的时候,也可以用xlabel,不需要确定位置。
xlabel({ ‘xlabel’, ‘title’ });
7.设置主次刻度
ax = gca; % 获取当前坐标轴
% 坐标轴属性可见matlab文档 “Axes 属性”
ax.XLim = [0.5 2.5]; % 坐标轴范围
ax.XTick = [1 2]; % 刻度线位置
ax.XTickLabel = {'k1','k2'}; % 刻度线标签
ax.XMinorTick = 'on'; % 显示次刻度线
ax.XAxis.MinorTickValues = 0.5:1:6.5; % 次刻度线位置
ax.YMinorTick = 'on';
8.双坐标轴
二、输入输出
1. 文件夹
mkdir newdir 在当前目录下创建名为newdir的文件夹;
mkdir(newdir) 不同点在于文件夹名字是变量newdir的值,如newdir=‘data1’;
name='data';
str=[name '/fig'];
mkdir(str);
将在当前文件夹下产生/data/fig的路径,其中 / 和 \ 可以混用,没有区别。
rmdir dir 删除当前目录下名为dir的文件夹
2. 输入参数
input(’ ')
prompt='输入一个0~10的数\n';
num=input(prompt);
3. 读写excel表
xlswrite(filename, A, sheet, xlRange);
新建一个excel表,就用xlswrite(filename,1)
filename也是基于当前路径,如 filename= ’data/data.xlsx’
MATLAB生成excel表格
获取当前路径以及添加路径
matlab excel的sheet增加,重命名操作
4.设置函数输入变量的默认值
nargin 需要写很多判断语句,但是简单。
用 inputParser类 ,有点麻烦。
function a=findArea(width,varargin)
p=inputParser; % 创建inputParser对象p
% 类属性:查看 help inputParser
% 方法:addOptional 添加可选位置参数
% addParameter 添加可选形参的名称-值
% addRequired 添加必需的位置参数
% 注意调用函数的时候,先输入必需的参数值(required),然后是可选位置参数(optional),最后是任何名称-值对组
defaultHeight=1;
defaultUnits='inches';
defaultShape='rectangle';
expectedShapes={'square','rectangle','parallelogram'};
addRequired(p,'width',@isnumeric);
% 必需的位置参数width,@isnumeric会检查输入是否为数值,如不能是字符
addOptional(p,'height',defaultHeight,@isnumeric);
% 可选的位置参数,有默认值
addParameter(p,'units',defaultUnits);
% 可选形参,有默认值
addParameter(p,'shape',defaultShape,@(x) any(validatestring(x,expectedShapes)));
% 可选形参,有默认值,且给出输入值的范围
% 至此,已设置好p
parse(p,width,varargin{:}); % 输入解析;函数的输入是width,varargin{:},解析并验证是否与p的设置匹配
a=p.Results.width.*p.Results.height;
举例:
>>findArea(4)
>> ans=4
>>findArea(4,2)
>> ans=8
>>findArea(4,'shape','square','units','m')
>> ans=4
5.保存数据为mat
matname = [curpath 'data/NEmat'];
save(matname, 'time','Poslist');
load(matname);
6.图片保存为视频
myVideo=VideoWriter('myVideo1.avi');
myVideo.FrameRate=25;
% 打开文件
open(myVideo);
pauseTime = time(2)-time(1);
for i = 1:m_t
% 如果是plot的图像
plot(x,y)
pause(pauseTime);
temp=getframe(gcf);
frame=temp.cdata;
writeVideo(myVideo,frame);
% 如果是img
frame = imread(imagepath);
writeVideo(myVideo,frame);
end
close(myVideo);
三、函数
内联函数 ,查看help inline
理解为不用写function文件,直接在M文件中创建函数。
>>g=inline('t^2');
>>g(2)
ans=4
通过char(g)或者formula(g)将其转换为字符矢量。
argnames(g)查看变量名
可以直接指定多个输入参数(会自动捕捉小写字母构成的变量)
g=inline('sin(alpha*x)','x','alpha')
总结
(未完待续)