Matlab 图中值的绘图行为
我有一个具有一组浮点值的以下格式的文件:Matlab 图中值的绘图行为,matlab,graph,Matlab,Graph,我有一个具有一组浮点值的以下格式的文件: a1 b1 c1 a2 b2 c2 ---end-of-run-1 a1 b1 c1 a2 b2 c2 a3 b3 c3 a4 b4 c4 a5 b5 c5 ---end-of-run-2 ... ... ... till n runs 我想将这组列(即由a、b、c组成)显示为图形上的不同曲线。此外,每次运行收集的值数量也会有所不同 我可以在matlab中使用哪些内置函数来确定这组值(a、b、c)在图形中的一些n次运行中的行为?快速且不干净,但我会逐
a1 b1 c1
a2 b2 c2
---end-of-run-1
a1 b1 c1
a2 b2 c2
a3 b3 c3
a4 b4 c4
a5 b5 c5
---end-of-run-2
...
...
...
till n runs
我想将这组列(即由a、b、c组成)显示为图形上的不同曲线。此外,每次运行收集的值数量也会有所不同
我可以在matlab中使用哪些内置函数来确定这组值(a、b、c)在图形中的一些
n次运行中的行为?快速且不干净,但我会逐行浏览该文件
function out = read_and_plot
fid = fopen('input.txt');
line_value = fgetl(fid);
i = 0;
while ischar(line_value)
if strncmp('--end-of',line_value,8) % we need to start on the next run
figure;
plot_data = [col1' col2' col3'];
plot(1:i', plot_data);
legend('col1', 'col2', 'col3');
% clear and restart
i = 0;
col1 = []; col2 = []; col3 = [];
else % we have a line of data
i = i + 1;
data = sscanf(line_value, '%f %f %f');
[col1(i),col2(i),col3(i)] = deal(data(1), data(2), data(3));
end
line_value = fgetl(fid);
end
fclose(fid);
return
函数输出=读取和绘图
fid=fopen('input.txt');
线值=fgetl(fid);
i=0;
while ischar(行_值)
如果strncmp('--end of',line_value,8)%我们需要从下一次运行开始
图形
plot_data=[col1'col2'col3'];
绘图(1:i',绘图数据);
图例(“col1”、“col2”、“col3”);
%清除并重新启动
i=0;
col1=[];col2=[];col3=[];
我们有一行数据
i=i+1;
数据=sscanf(行_值,“%f%f%f”);
[col1(i)、col2(i)、col3(i)]=交易(数据(1)、数据(2)、数据(3));
结束
线值=fgetl(fid);
结束
fclose(fid);
返回
现在,为了确定值的行为,它将取决于您是否尝试曲线拟合或拟合分布,如果是,我建议使用曲线拟合工具箱。非常感谢这个脚本。如何实现此更改:您当前正在每次运行后绘制图形,但我希望收集不同运行的数据,然后绘制单个图形?(因此,我的文件的每一列都有一个二维矩阵,矩阵的列号表示运行编号)。希望这有意义!当然,您只需将尺寸添加到绘图数据。因此,在plot_data现在所在的位置,global_plot_data=[global_plot_data;plot_data];您必须在开始时定义global_plot_data=[],但可以在结束时使用相同的plot命令。