我的文本文件包含两列数字。在for循环中,我将第一列和第二列分别存储为X(n)
和Y(n)
(作为浮点数),n
是迭代次数。
假设我不知道我有多少文件,并且数据的长度/范围是可变的。
有没有办法创建一种动态变量,所以我可以用它作为输入以图形方式表示数据,如
plot(dynamic_variable)
而不是每手写作
plot(X1,Y1,X2,Y2,...,XN,YN)
我知道应该有可能插入数据(因为文件的长度/范围不同),因此可以创建两个矩阵,比如XM
和YM
,最后写(XM,YM)
,其中
XM = [X1_intrpl X2_intrpl ... XN_intrpl]
YM = [Y1_intrpl Y2_intrpl ... YN_intrpl].
有更直接的方法吗?
我远非成为专家:所以我也很感激对我的想法/方法的任何评论和/或批评。
答案 0 :(得分:0)
Matlab绘图功能似乎不支持您正在寻找的内容。我猜你已经在这里查看了plot命令的文档: https://de.mathworks.com/help/matlab/ref/plot.html?requestedDomain=www.mathworks.com
你可以做的是编写你自己的绘图函数,它将两个矩阵作为参数。
在函数中,您将遍历矩阵中的对,使用按住来绘制它们,以在一个图中显示所有数据。
答案 1 :(得分:0)
一个选项是将每组X(n)和Y(n)读入一个单元格数组,以便
X{1} = X1
Y{1} = Y1
...
X{N} = XN
Y{N} = YN
然后绘制,而不是尝试将所有内容合并到一个数组中,您可以简单地将每组X和Y一次一个地绘制到同一个数字上。
%Instead of:
%plot(X1,Y1,X2,Y2,...,XN,YN)
%Use:
figure()
hold on
for i=1:N
plot(X{i},Y{i})
end