繁体   English   中英

如果我不知道数组的具体大小,我如何在Matlab中制作一个图?

[英]How do I make a plot in Matlab if I do not know the specific size of the array?

我有一些代码

function runTubulin()
  n = 10;
  for j = 1:n
      TubulinModel(); 
  end


plot(TubulinModel(), n);

所以我的问题是TubulinModel有一个随机数量的输出所以我一直在得到

??? 使用==> TubulinModel时出错输出参数太多。

错误在==> runTubulin 11 plot(TubulinModel(),n);

当我不知道数组的大小时,有没有一种绘制数据的方法?

您获得的错误( Too many output arguments )意味着函数TubulinModel实际上不返回任何输出。 函数TubulinModel应该传递至少一个输出参数供PLOT命令使用,它似乎没有做。 您可以通过尝试以下方法来检查:

a = TubulinModel();  %# Place the output in a variable instead

如果这给你一个错误,那么这意味着你必须修改TubulinModel以便它返回你需要的数据,或者将这些数据放在一个全局变量中,你可以在函数外部访问并用于绘图。

在后续迭代中,您的循环似乎与TublinModel函数没有任何不同。 此外,plot函数再次调用该函数,与循环相同。 假设每个循环返回不同的随机长度数据,您可以将每组数据存储在一个对象数组中,然后在绘图之前找出要使用的参数。

function runTubulin()

n = 10;
max_length = 0; max_pos = 0; max_neg = 0;
for j = 1:n
    data{j} = TublinModel();    % get your data, then characterize it
    if max(data(j)) > max_pos, max_pos = max(data(j)); end
    if max(-data(j)) > max_neg, max_neg = max(-data(j)); end
end

figure(1); % new axes
axis([0 10 -max_neg max_pos]); hold on; % scale the axis and freeze it
for j = 1:n
    plot(length(data(j)),data(j));
end

希望有所帮助!

当您使用两个参数调用plot时,第一个将是x轴数据,第二个是y轴数据。 这是你想要的吗? 如果你想将TubulinModel()作为y轴数据,你可以做plot(TubulinModel()) 有关更多信息,请参阅help plot

我不明白你为什么在循环中十次调用TubulinModel()之前在第一次调用plot

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM