从 MATLAB 导出数据以在 gnuplot 中使用
Export data from MATLAB to use in gnuplot
我想从 MATLAB 中导出数据,以便在 gnuplot 中使用它。例如:
>> a=[1 2 3 4];
>> b=[5 6 7 8];
>> c=[9 10 11];
>> d=[12 13 14];
我想绘制(a,b) 和(c,d)。如何将所有这些变量写入一个文件的四列中以及如何在 gnuplot 中使用它们?
对于相同长度的向量
您可以简单地将向量放入一个以转置向量为列的矩阵中,并将矩阵保存为 ASCII 格式:
out = [a' b' c' d'];
save( 'myfile.txt', 'out', '-ASCII' );
在 gnuplot 中,您使用以下绘图:
plot 'myfile.txt' u 1:2, '' u 3:4
对于不同长度的向量
在您的示例中,我建议将数据放在单独的文件中,因为数据是不相关的。如果您仍想将所有内容都放在一个文件中,您可以用 NaN
s 填充较小的向量。 Gnuplot 不会抱怨文本文件中的 NaN
s。然后你可以像以前一样再次构建矩阵。
c(1,4)=NaN;
d(1,4)=NaN;
对于一般情况,您可能应该以更智能的方式进行填充。
我想从 MATLAB 中导出数据,以便在 gnuplot 中使用它。例如:
>> a=[1 2 3 4];
>> b=[5 6 7 8];
>> c=[9 10 11];
>> d=[12 13 14];
我想绘制(a,b) 和(c,d)。如何将所有这些变量写入一个文件的四列中以及如何在 gnuplot 中使用它们?
对于相同长度的向量
您可以简单地将向量放入一个以转置向量为列的矩阵中,并将矩阵保存为 ASCII 格式:
out = [a' b' c' d'];
save( 'myfile.txt', 'out', '-ASCII' );
在 gnuplot 中,您使用以下绘图:
plot 'myfile.txt' u 1:2, '' u 3:4
对于不同长度的向量
在您的示例中,我建议将数据放在单独的文件中,因为数据是不相关的。如果您仍想将所有内容都放在一个文件中,您可以用 NaN
s 填充较小的向量。 Gnuplot 不会抱怨文本文件中的 NaN
s。然后你可以像以前一样再次构建矩阵。
c(1,4)=NaN;
d(1,4)=NaN;
对于一般情况,您可能应该以更智能的方式进行填充。