簡體   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