保存vector二维数组并绘制其对应曲线

  • 使用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');

运行结果为:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值