[英]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.