- 使用vector<Point2f>存放二维点向量,其中f表示存放float类型的数据;也可以使用vector<Point2i>,i表示存放int类型的数据或者vector<Point2d>,d表示存放double类型的数据。
- 编写一个模板函数,将第1步的vertor容器中的点向量以.txt格式的文件保存下来。下面是c++编写的模板函数。
template<typename T> bool txtstorage(std::string filename, std::vector<T> container)
{
if (container.empty())
{
return false;
}
std::string path = "data\\";\\需要在工程路径下创建一个data文件存放filename名称的txt;容器为空则返回false;
path = path + filename + ".txt";
ofstream txt;
txt.open(path, std::ios::out | std::ios::app);
for (int i = 0; i < container.size(); i++)
{
txt << container.at(i) << std::endl;
}
txt.close();
return true;
}
- 保存的数据中含有“[]”符号,用word查找替换将其去除。
- 打开matlab,点击“主页”-“导入数据”,选择刚才修改好的.txt文件,然后在“输出类型”下选择“数值矩阵”,并检查数据情况是否符合自己要求,最后点击“导入所选内容”。
- 然后matlab“工作区”可以看到导入的数据,右键选择“另存为”将其保存为.mat格式。
- 编写matlab代码绘制曲线。
load('drawrplot.mat');
x=drawrplot(:,1);
y=drawrplot(:,2);
figure(1);
plot(x,y,'r','LineWidth',0.5);
此时曲线结果为:
注:
1.Matlab查看命令的两种方式:(1)help+命令,会在命令行窗口显示文档;(2)doc+命令,直接打开操作文档。
2.绘制常量y值水平线:在命令行输入“doc yline”,在操作文档中浏览其代码。
3.在统一figure下显示多个曲线记得用“hold on”;
添加的水平线代码如下:
load('drawrplot.mat');
x=drawrplot(:,1);
y=drawrplot(:,2);
xlim=get(gca,'Xlim'); % gca代表此时的绘图区,'Xlim'代表X轴的范围'
y2=61.36;
figure(1);
plot(x,y,'r','LineWidth',0.5);
hold on;
yline(y2,'-.k');
运行结果为: