MATALAB

时间:2017-10-11 09:52:06

标签: matlab variables plot dynamic

我的文本文件包含两列数字。在for循环中,我将第一列和第二列分别存储为X(n)Y(n)(作为浮点数),n是迭代次数。 假设我不知道我有多少文件,并且数据的长度/范围是可变的。

有没有办法创建一种动态变量,所以我可以用它作为输入以图形方式表示数据,如

plot(dynamic_variable)

而不是每手写作

plot(X1,Y1,X2,Y2,...,XN,YN)

我知道应该有可能插入数据(因为文件的长度/范围不同),因此可以创建两个矩阵,比如XMYM,最后写(XM,YM),其中

XM = [X1_intrpl X2_intrpl ... XN_intrpl]
YM = [Y1_intrpl Y2_intrpl ... YN_intrpl]. 

有更直接的方法吗?

我远非成为专家:所以我也很感激对我的想法/方法的任何评论和/或批评。

2 个答案:

答案 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