預先感謝您提供的任何幫助。我對 Matlab 比較陌生,在使用批處理命令向函式傳遞引數方面遇到了困難。我已經盡可能地簡化了這個例子。
根據檔案,我可以用一個內置的函式來實作:
> >
>> j = batch(@zeros,1,{10,1}) 。
>> a=fetchOutputs(j)
a =
1×1細胞陣列
{10×1 double}。
>> a{1}。
ans =
0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
然后我創建了一個簡單的獨立函式runTest.m:
function result = runTest(n1。 n2)
result = zeros(n1,n2)。
end
它可以直接呼叫:
>> a=runTest(5,1)
a =
0
0 0
0 0
0 0
0 0
但是,使用批處理并不奏效:
>> j = batch(runTest,1,{5,1})。)
沒有足夠的輸入引數。
runTest中的錯誤(行2)。
result = zeros(n1,n2)。
有什么建議嗎?謝謝你。
uj5u.com熱心網友回復:
當你做的時候
j = batch(runTest,1,{5,1}) 。
那么該陳述句中讀取runTest的部分試圖呼叫沒有輸入引數的函式runTest。這就是錯誤發生的地方。它從未呼叫過batch。
就像在其他幾乎所有的編程語言中一樣,函式呼叫的引數在函式被呼叫之前被評估,評估runTest與評估runTest()是一樣的,MATLAB對這兩者沒有區別。
你想寫的是
j = batch(@runTest,1,{5,1}) 。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/309717.html
標籤:
