-
MATLAB中利用cftool导出代码实现一张图中拟合多条平滑曲线
2015-12-22 00:18:31MATLAB中自带的cftool拟合工具箱不能将多条曲线同时画在同一副图中,而常规的plot()函数又不能拟合平滑直线,接下来总结一种可以利用cftool导出的代码,在一张图中拟合多条平滑曲线。 首先输入所要拟合的数据,如x,...MATLAB中自带的cftool拟合工具箱不能将多条曲线同时画在同一副图中,而常规的plot()函数又不能拟合平滑直线,接下来总结一种可以利用cftool导出的代码,在一张图中拟合多条平滑曲线。
首先输入所要拟合的数据,如x, y, x1, y1, x2, y2等等。
之后打开cftool工具箱,使用数据拟合曲线,在拟合方式一栏选择Smoothing Spline。可以得到图像。
之后在文件菜单栏中点击Generate Code,之后将在工作空间里看到导出的m文件。
function [fitresult, gof] = createFit(x, y) %CREATEFIT(X,Y) % Create a fit. % % Data for 'untitled fit 1' fit: % X Input : x % Y Output: y % Output: % fitresult : a fit object representing the fit. % gof : structure with goodness-of fit info. % % 另请参阅 FIT, CFIT, SFIT. % 由 MATLAB 于 22-Dec-2015 00:27:49 自动生成 %% Fit: 'untitled fit 1'. [xData, yData] = prepareCurveData( x, y ); % Set up fittype and options. ft = fittype( 'smoothingspline' ); % Fit model to data. [fitresult, gof] = fit( xData, yData, ft ); % Plot fit with data. figure( 'Name', 'untitled fit 1' ); h = plot( fitresult, xData, yData ); legend( h, 'y vs. x', 'untitled fit 1', 'Location', 'NorthEast' ); % Label axes xlabel( 'x' ); ylabel( 'y' ); grid on
也就是说,其实也可以通过编写函数来实现拟合平滑曲线,但是由cftool工具箱导出的代码可以减少自己的工作量,减少由于MATLAB语言不熟练导致效率低下的工作。之后在这个m文件的适当位置加入拟合多条曲线的代码,就可以实现与cftool拟合平滑曲线效果相同的多条曲线了。
以下是我修改的代码,注意注释。
function [fitresult, gof] = e1(x, y, x1, y1, x2, y2) %将需要绘制图像的数据加入参数中 %CREATEFIT(X,Y) % Create a fit. % % Data for 'untitled fit 1' fit: % X Input : x % Y Output: y % Output: % fitresult : a fit object representing the fit. % gof : structure with goodness-of fit info. % % 另请参阅 FIT, CFIT, SFIT. % 由 MATLAB 于 21-Dec-2015 23:23:33 自动生成 %% Fit: 'untitled fit 1'. [xData, yData] = prepareCurveData( x, y ); [xData1, yData1] = prepareCurveData( x1, y1 );<span style="white-space:pre"> </span>%第二条曲线需要的代码,注意改变参数 [xData2, yData2] = prepareCurveData( x2, y2 );<span style="white-space:pre"> </span>%第三条曲线需要的代码,注意改变参数 % Set up fittype and options. ft = fittype( 'smoothingspline' );<span style="white-space:pre"> </span>%顾名思义,将拟合方式设置为光滑曲线 % Fit model to data. [fitresult, gof] = fit( xData, yData, ft ); [fitresult1, gof1] = fit( xData1, yData1, ft );<span style="white-space:pre"> </span>%第二条曲线需要的代码,注意改变参数 [fitresult2, gof2] = fit( xData2, yData2, ft );<span style="white-space:pre"> </span>%第三条曲线需要的代码,注意改变参数 % Plot fit with data. figure( 'Name', 'fit 1' ); h = plot( fitresult, xData, yData ); hold on;<span style="white-space:pre"> </span>%加入hold on 可以使之后的曲线画在同一张图中 h1 = plot( fitresult1, xData1, yData1, 'o' );<span style="white-space:pre"> </span>%绘制第二条曲线,注意参数 hold on;<span style="white-space:pre"> </span>%作用同上 h2 = plot( fitresult2, xData2, yData2, 'o' );<span style="white-space:pre"> </span>%绘制第三条曲线,注意参数 hold on; % Label axes xlabel( 'x' ); ylabel( 'y' ); grid on
保存之后,在命令行窗口中运行该m函数文件,即可得到在一张图中同时拟合三条光滑曲线。同理,其他拟合方式也可以使用相同的方式达到多条曲线同时拟合的图像。
-
matlab如何去除图像白边_matlab 图像保存时去除白边
2021-01-27 07:58:10很是讨厌MATLAB输出图像时自带的白边,尤其是当导出.eps格式时,很难通过编辑图片来去掉白边。网上有很多代码但是没有注释,有很多坑要填。这里提供一个去除白边的代码,自己在别人的基础上修改了而且加了注释。...很是讨厌MATLAB输出图像时自带的白边,尤其是当导出.eps格式时,很难通过编辑图片来去掉白边。网上有很多代码但是没有注释,有很多坑要填。这里提供一个去除白边的代码,自己在别人的基础上修改了而且加了注释。
MATLAB 坐标图
XLabel -- 标签
Title -- 标题
XTick -- 刻度线
XTickLable -- 刻度标签
下图显示了一个二维视图,其中 OuterPosition 值定义红色区域、Position 值定义蓝色区域,TightInset 值定义的品红色区域到蓝色之间的阴影区域。
OuterPosition和Position是一个四元素的向量:[left bottom width height],均为0-1的小数,且均相对于整个绘图区域来说的,即figure的大小。
这四个值的作用:left和bottom确定左下角的坐标,即[0.25 0.25]表示左下角在1/4处,width和height确定区域所占的高度和宽度,[0.5 0.5]表示区域的高度和宽度为整个绘图区域的一半。[0.25 0.25 0.5 0.5]表示将区域的长和宽设为整个绘图区域的一半并放在正中间(自己计算一下位置就知道)。
TightInset是也是一个四元素的向量,但是有些区别:[left bottom right top],其代表的是左下右上四个方向上的Position的margin,也就是Lable和Title所在区域(即阴影区域),其值也是0-1的小数,且均相对于整个绘图区域来说的。TightInest是只读属性,故只能通过设置Position来改变图像区域大小。
去白边代码
%%%%%%%%%%%%%%%%%%%%%%
% fn -- 图像,可通过“f=figure;”获得
% fan -- 图像坐标,可通过“fa=gca”获得
%%%%%%%%%%%%%%%%%%%%%%
f=[f1 f2 f3 f4]; % 四个不同图像
axs = [fa1,fa2,fa3,fa4]; % 四个不同图像的坐标对象
for i=1:4
% 图像保存去掉白边代码
ax = axs(i); % 获取一个坐标对象
set(ax,'LineWidth',1.5); % 设置坐标线宽
% set(ax, 'FontWeight','bold');
figure_FontSize=12; % 设置一个字号变量,方便统一更改
set(get(ax,'XLabel'),'FontSize',figure_FontSize); % 设置标签字号
set(get(ax,'YLabel'),'FontSize',figure_FontSize);
% 通过findobj更改对象的属性
set(findobj(get(ax,'Children'),'LineWidth',0.5),'LineWidth',1.5);
set(findobj('FontSize',10),'FontSize',figure_FontSize);
grid(ax,'on'); % 网格开
set(ax,'GridLineStyle',':','GridColor','k','GridAlpha',0.3); % 网格样式
% 删除白边的主体代码
% 注意在删除白边之后不可以再调整字号等属性,否则会将图像上的边缘上的内容剪裁掉
outerpos = ax.OuterPosition; % 获取外部框位置
ti = ax.TightInset; % 获取内容框位置
left = outerpos(1) + ti(1); % 把Position的left值设为左边margin的值
bottom = outerpos(2) + ti(2); % 把Position的bottom值设为右边margin的值
ax_width = outerpos(3) - ti(1) - ti(3); % 设置对应的宽度
ax_height = outerpos(4) - ti(2) - ti(4); % 设置对应的高度
ax.Position = [left bottom ax_width-0.01 ax_height-0.01]; % 可以微调一下,以保证边缘没有被剪裁掉。
fig = f(i);
fig.PaperPositionMode = 'auto';
fig_pos = fig.PaperPosition;
fig.PaperSize = [fig_pos(3)+1 fig_pos(4)+1];
end
% 保存图像为eps格式,psc2表示支持彩色
saveas(f1,'plot_img/example1.eps','psc2');
saveas(f2,'plot_img/example2.eps','psc2');
saveas(f3,'plot_img/example3.eps','psc2');
saveas(f4,'plot_img/example4.eps','psc2');
另外,如果保存的eps文件出现放大后模糊的问题,原因可能有两个:
图像中存在透明性质的点:取消透明即可
渲染方式为opengl:set(gcf, 'Renderer', 'Painters');更改渲染方式。
-
matlab toolbox下载_Matlab自动导出高质量无变形论文插图
2020-11-28 12:05:03然而,当我们辛辛苦苦地敲完代码、可视化了数据后却发现,如何将自己在电脑屏幕上所看到的图像原封不动地保存下来,也是个很大的问题。有锯齿、线条变形、尺寸错误……虽然在近几年新版本的Matlab中已经有所改善,但...点击上方“阿昆的科研日常”,关注我的公众号。
设为“星标”,原创技术文章第一时间推送。
Matlab是我们进行数据分析与成图时所常用的软件。
然而,当我们辛辛苦苦地敲完代码、可视化了数据后却发现,如何将自己在电脑屏幕上所看到的图像原封不动地保存下来,也是个很大的问题。
有锯齿、线条变形、尺寸错误……
虽然在近几年新版本的Matlab中已经有所改善,但其实还是或多或少的存在一些问题。
而且,考虑到很多人还是比较习惯用低版本的Matlab,所以这里再给大家介绍一个出图插件——export_fig[1],可以完美解决锯齿、变形问题。
export_fig是由Yair Altman提供的一款用于将图形从Matlab导出为标准图像和文档格式的工具箱。
A toolbox for exporting figures from MATLABto standard image and document formats nicely.
1. 安装
下载export_fig文件包后,将其放在Matlab安装路径的toolbox文件夹中,比如我的是 ‘D:\Program Files\MATLAB\R2017b\toolbox’。
然后打开Matlab,点击‘Set Path’->‘Add with Subfolders...’,在弹出的对话框中,到toolbox文件夹选择‘export_fig’文件夹后,点击‘Save’完成。
2. 使用方法
export_fig的使用方法非常简单。
作图完成后,
在命令窗口(或者直接在脚本文件运行)键入:
export_fig test.tif -r300
执行后,在当前文件夹中,会生成一个分辨率为300dpi、名为‘test’的‘tif’文件:
比较后可以发现,用export_fig导出的图像与在Figure窗口中看到的基本一致,唯一的不同在于,export_fig导出的图像没有白边(为了方便观察这里背景颜色设为灰色),而白边问题其实也是困扰着很多同学的问题,在我之前的文章中(Matlab论文插图去白边的5种方法)有讲过。
当然,如果你就是想要有白边,那可以:
export_fig test.tif -r300 –nocrop
假如你想保存到指定的地方,只需在文件名前添加路径即可。比如我想保存到D盘中,只需键入:
export_fig D:\test.tif -r300
对于虚线、点线变密问题,只需在之前的代码中再加一条:
export_fig D:\test.tif -r300 –painters
由于我这里的版本基本没有这一问题,所以就不演示效果了。
除了上面讲到的常用命令,export_fig其实还有很多强大的功能,比如裁剪、调节透明度等。
想要学习更多的朋友可以看它的说明 ‘README.md’。
[1] export_fig. https://www.mathworks.com/matlabcentral/fileexchange/23629-export_fig
下载方式
公众号后台回复关键字“导出”获取~
推荐阅读
• Python_Matplotlib用户必备的画图速查表• Matlab配色方案补充包——Matplotlib 3.3• Matlab论文插图去白边的5种方法•文献翻译软件,用这一款就足够了!•如何用Matlab在论文中画出漂亮的插图
欢迎关注我的公众号“阿昆的科研日常”,原创技术文章第一时间推送,如果喜欢,麻烦点一下“在看”~
-
matlab 调节透明度_Matlab自动导出高质量无变形论文插图
2021-01-03 13:11:31然而,当我们辛辛苦苦地敲完代码、可视化了数据后却发现,如何将自己在电脑屏幕上所看到的图像原封不动地保存下来,也是个很大的问题。有锯齿、线条变形、尺寸错误……虽然在近几年新版本的Matlab中已经有所改善,但...点击上方“阿昆的科研日常”,关注我的公众号。
设为“星标”,原创技术文章第一时间推送。
Matlab是我们进行数据分析与成图时所常用的软件。
然而,当我们辛辛苦苦地敲完代码、可视化了数据后却发现,如何将自己在电脑屏幕上所看到的图像原封不动地保存下来,也是个很大的问题。
有锯齿、线条变形、尺寸错误……
虽然在近几年新版本的Matlab中已经有所改善,但其实还是或多或少的存在一些问题。
而且,考虑到很多人还是比较习惯用低版本的Matlab,所以这里再给大家介绍一个出图插件——export_fig[1],可以完美解决锯齿、变形问题。
export_fig是由Yair Altman提供的一款用于将图形从Matlab导出为标准图像和文档格式的工具箱。
A toolbox for exporting figures from MATLABto standard image and document formats nicely.
1. 安装
下载export_fig文件包后,将其放在Matlab安装路径的toolbox文件夹中,比如我的是 ‘D:\Program Files\MATLAB\R2017b\toolbox’。
然后打开Matlab,点击‘Set Path’->‘Add with Subfolders...’,在弹出的对话框中,到toolbox文件夹选择‘export_fig’文件夹后,点击‘Save’完成。
2. 使用方法
export_fig的使用方法非常简单。
作图完成后,
在命令窗口(或者直接在脚本文件运行)键入:
export_fig test.tif -r300
执行后,在当前文件夹中,会生成一个分辨率为300dpi、名为‘test’的‘tif’文件:
比较后可以发现,用export_fig导出的图像与在Figure窗口中看到的基本一致,唯一的不同在于,export_fig导出的图像没有白边(为了方便观察这里背景颜色设为灰色),而白边问题其实也是困扰着很多同学的问题,在我之前的文章中(Matlab论文插图去白边的5种方法)有讲过。
当然,如果你就是想要有白边,那可以:
export_fig test.tif -r300 –nocrop
假如你想保存到指定的地方,只需在文件名前添加路径即可。比如我想保存到D盘中,只需键入:
export_fig D:\test.tif -r300
对于虚线、点线变密问题,只需在之前的代码中再加一条:
export_fig D:\test.tif -r300 –painters
由于我这里的版本基本没有这一问题,所以就不演示效果了。
除了上面讲到的常用命令,export_fig其实还有很多强大的功能,比如裁剪、调节透明度等。
想要学习更多的朋友可以看它的说明 ‘README.md’。
[1] export_fig. https://www.mathworks.com/matlabcentral/fileexchange/23629-export_fig
下载方式
公众号后台回复关键字“导出”获取~
推荐阅读
• Python_Matplotlib用户必备的画图速查表• Matlab配色方案补充包——Matplotlib 3.3• Matlab论文插图去白边的5种方法•文献翻译软件,用这一款就足够了!•如何用Matlab在论文中画出漂亮的插图
欢迎关注我的公众号“阿昆的科研日常”,原创技术文章第一时间推送,如果喜欢,麻烦点一下“在看”~
-
matlab图片白边_matlab 图像保存时去除白边
2021-01-16 01:20:51很是讨厌MATLAB输出图像时自带的白边,尤其是当导出.eps格式时,很难通过编辑图片来去掉白边。网上有很多代码但是没有注释,有很多坑要填。这里提供一个去除白边的代码,自己在别人的基础上修改了而且加了注释。... -
Matlab图像处理(入门笔记)
2021-04-02 10:20:02Matlab图像处理1. 图像的数据结构1.1 矩阵1.2 链码1.3 拓扑结构1.4 关系结构新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表... -
MATLAB代码实现---遥感图像预处理系统
2021-01-11 14:26:01MATLAB代码实现---遥感图像预处理系统系统介绍代码实现几何校正新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格... -
Matlab图像处理--细胞目标计数
2019-08-09 19:53:52有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学... -
matlab求图像频谱
2020-11-05 23:56:50有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学... -
图像去黑边 MATLAB
2021-03-10 10:54:50有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学... -
matlab 三维显示原图像_MATLAB作图实例:00:索引
2020-11-28 11:51:11二维图和三维图绘制连续、离散、曲面以及三维体数据图格式和注释添加标签、调整颜色、定义坐标轴范围、应用光照或透明度、设置照相机视图图像读取、写入、显示和修改图像打印和保存打印和导出为标准文件格式图形对象... -
matlab GUI读取图像文件
2018-09-14 21:28:14欢迎使用Markdown编辑器写博客 ...代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列图和流程图 离线写博客 导入导出Markdown文件 丰富的快捷键 快捷键 加粗 Ctrl + B 斜体 Ctrl + I... -
Matlab(1):图像边缘检测笔记
2020-03-18 11:42:28Matlab(1):图像边缘检测写在开头图像边缘检测边缘的定义和特征边缘的基本分类功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一... -
MatLab中用马氏距离法对TM图像进行分类
2018-05-12 18:00:05训练样本(资源已附一个训练样本)来自ENVI CLASSIC导出的ASCLL码格式(文本文件),执行代码会有对话框要求手动打开若干个波段的TM图像,有对话框可以调整输出图像的大小,输出图像显示并以系统时间命名保存。... -
【测绘专用】 MATLAB 四叉树分割遥感图像
2019-01-07 12:23:14这里写自定义目录标题MATLAB 四叉树分割遥感图像数据处理的思路源代码合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、... -
精通MATLAB GUI设计(第3版)代码
2018-12-19 22:54:44设计提高篇介绍MATLAB图形的颜色、光影和透明处理,动画设计,图像显示技术,图形的打印和导出,句柄图形对象,GUI的组成与结构,GUI基础及高级设计;设计实例篇介绍GUI设计在高等数学、大学物理和电工学中的应用。 -
五种矩阵在matlab中进行图像处理(学习笔记)
2020-10-24 16:14:00有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学... -
【三维人脸识别】matlab读取.wrl三维图像文件
2020-11-17 21:27:27有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学... -
【MATLAB】从二值图像中手动选择感兴趣区域,并拟合直线
2020-10-31 16:10:36有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学... -
Matlab机器视觉工具箱(MVTB)教程(1)——图像处理
2020-05-27 00:22:23有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学... -
awesome-matlab:精选的Matlab框架,库和软件的精选清单-源码
2021-02-10 14:02:39用于导出出版物质量数据的MATLAB工具箱 -Piotr的图像和视频Matlab工具箱 应用和保存MATLAB中的配色方案。 - :robot_face: MatLab / Octave流行的机器学习算法示例,并解释了代码示例和数学 视频中背景建模和减法... -
Matlab-Deep Learning Toolbox
2019-04-08 21:32:13Deep Learning Toolbox™...生成MATLAB代码或CUDA ®和C ++代码和部署深学习网络 函数逼近和聚类 使用浅层神经网络执行回归,分类和聚类 时间序列和控制系统 基于浅网络的模型非线性动态系统; 使用顺序数据进行预测。 -
Matlab R2018b(64位).rar
2019-12-10 13:35:13可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 Matlab R2018b新增功能... -
数据预处理——matlab拟合工具箱
2020-11-26 15:11:37五、如何导出拟合的高清图像 六、调用拟合工具箱自动生成的代码 七、利用拟合工具箱预测美国人口 1. 题目 2. 使用拟合工具箱进行拟合 3. 自动生成拟合的代码 4. 预测未来的人口数 八、优秀论文中cftool的应用... -
Matlab R2019a(64位).rar
2019-12-10 13:25:34可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 Matlab R2019a新增功能... -
matlab遍历文件夹下指定类型的文件以及子文件夹
2017-06-03 16:47:20最近需要将文件夹下所有图像文件的文件名导出,只知道matlab的dir函数能够获取到目录下的文件以及文件夹名称,却不能递归的遍历所有子文件夹,因此自己matlab编写了一个函数,实现自己的需求 代码实现 function name... -
bootstrap4 网格布局实例_MATLAB作图实例:00:索引
2021-01-09 10:51:27二维图和三维图绘制连续、离散、曲面以及三维体数据图格式和注释添加标签、调整颜色、定义坐标轴范围、应用光照或透明度、设置照相机视图图像读取、写入、显示和修改图像打印和保存打印和导出为标准文件格式图形对象... -
基于MATLAB,使用SVM和ANN实现车牌识别
2019-10-09 21:04:57这里写自定义目录标题WHYHOW一、输入图像功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右... -
JAVA中调用MATLAB生成得jar包,编译错误,请问要如何解决
2021-03-16 16:28:06从MATLAB中导出jar包,然后导入java中调用,该jar包的功能为对一个图像集进行拼接,其中使用了vlfeat这一插件,报错如下 <p><img alt="" height="551" src=... -
基于PCA的图像压缩及人脸识别算法
2021-02-03 20:06:32算法分析与MATLAB仿真原始数据图像的处理功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右...