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