在多年的matlab使用过程中,自己编写三个简单的函数,用来简化或者方便画图,分享给大家,示例使用matlab版本R2016b。
曲线颜色
有时我们需要画多条曲线,用不同颜色区分,plot的颜色已经很好用,但是我们有时希望几条曲线用相同颜色,而不是自动变化,所以要用’color’属性来固定颜色,而常用的’r’,‘g’等颜色过于丑陋,其他饱和度低的颜色要输出RGB值,记不住,所以写了个函数来帮助记忆。代码中是matlab默认的颜色顺序,可以自己更改。
function [ colorRGB ] = colorRGB( plot_sequence )
% color colorRGB
% plot绘图曲线颜色,与matlab默认颜色序列一致
if plot_sequence == fix(plot_sequence)
switch plot_sequence
case 1
colorRGB = [0,0.45,0.74];
case 2
colorRGB = [0.85,0.33,0.1];
case 3
colorRGB = [0.93,0.69,0.13];
case 4
colorRGB = [0.49,0.18,0.56];
case 5
colorRGB = [0.47,0.67,0.19];
case 6
colorRGB = [0.3,0.75,0.93];
case 7
colorRGB = [0.64,0.08,0.18];
end
if plot_sequence <1 || plot_sequence >7
colorRGB = [0,0.45,0.74];
end
else
colorRGB = repmat(plot_sequence-fix(plot_sequence),1,3);
end
坐标轴字体大小级曲线粗细统一更改
画图时每一幅图都添加set函数改各种属性比较麻烦,将常用的几个属性的更改放到一个函数即可。
function [ ] = setaxis( fontsize, linewidth )
% fontsize 所有字体大小
% linewidth 所有曲线粗细
%
if nargin == 0
set(gca,'Linewidth',2,'Fontsize',20,'box','on');
elseif nargin ==1
set(gca,'Linewidth',2,'Fontsize',fontsize,'box','on');
else
set(gca,'Linewidth',2,'Fontsize',fontsize,'box','on');
set(findall(gcf,'type','line'),'linewidth',linewidth)
end
end
数据游标的精度
经常使用数据游标发现显示只有小数点后四位,不便于观测数据,因此编写一个文本更新函数,使用时选择数据游标功能,右击选择文本更新函数。
function output_txt = myfunction(obj,event_obj)
% Display the position of the data cursor
% obj Currently not used (empty)
% event_obj Handle to event object
% output_txt Data cursor text string (string or cell array of strings).
pos = get(event_obj,'Position');
output_txt = {['X: ',num2str(pos(1),8)],...
% 此处的pos(1)后的数字,即X轴的数据游标的显示精度位数
['Y: ',num2str(pos(2),8)]};
% 此处的pos(2)后的数字,即Y轴的数据游标的显示精度位数
% If there is a Z-coordinate in the position, display it as well
if length(pos) > 2
output_txt{end+1} = ['Z: ',num2str(pos(3),8)];
% 此处的pos(3)后的数字,即Z轴的数据游标的显示精度位数
end
如何使用
首先需要新建函数,将函数保存为m文件,存在一个文件夹(最好是全英文路径及文件名),然后matlab菜单栏,设置路径,添加文件夹,保存即可。
下载
https://download.csdn.net/download/qq_30049235/33161035