我必須爲調用其他幾個函數的特定函數運行大量的迭代(10^6)。由於代碼有兩部分,所以它調用的函數之一是具有switch case語句。我顯然不希望提示10^6次,有沒有辦法讓我在第1次迭代中得到提示,並根據該選擇繼續進行其餘的迭代?或者還有其他辦法可以解決這個問題嗎?開關語句問題(Matlab)
謝謝你, 喬喬
我必須爲調用其他幾個函數的特定函數運行大量的迭代(10^6)。由於代碼有兩部分,所以它調用的函數之一是具有switch case語句。我顯然不希望提示10^6次,有沒有辦法讓我在第1次迭代中得到提示,並根據該選擇繼續進行其餘的迭代?或者還有其他辦法可以解決這個問題嗎?開關語句問題(Matlab)
謝謝你, 喬喬
你在做什麼在這裏可能是一個設計問題,你可能能夠解決不同。在呼叫層次內部深入提示參數/選項似乎是錯誤的。不管怎麼說回答你的問題,你能有這樣的參數,讓我們稱之爲乘數f
的是,內部功能的persistent
變量:
function c = dosomething(a, b)
persistent f;
while isempty(f)
f = input('enter multiplier: ');
end
c = f * a + b;
在這個例子中,f
將是空[]
首次dosomething
被調用。在這種情況下,用戶將被提示輸入一個值。在隨後的調用中,f
仍將具有此值(由於聲明者persistent
),並且不會再提示用戶。
A 好得多解決方案可能是讓外部函數將參數傳遞給dosomething(a, b, f);
,所以外部函數可能是提示用戶的函數。
謝謝s.bandara。 – Jojo
我不明白這個問題。爲什麼不傳遞一個在初始化期間確定的參數?你能添加一些解釋你的問題的代碼嗎? – Daniel
您可以將響應保存到文件並在每次迭代中加載它。沒有顯示你的代碼,沒有太多的繼續。 – LeonardBlunderbuss
哪個提示會出現? –