0
matlab函數sscanf返回一個可變大小的矩陣(或可能是一個單元陣列?),它可以分配給一個變量名稱矩陣嘗試將matlab矩陣分配給命名變量矩陣會產生'太多輸出參數'錯誤
>> clear all ;
line = '1 2' ;
[a, sz] = sscanf(line, '%d %d') ;
看來,輸出矩陣a
是一個列矩陣,其可以被轉置以形成1×2矩陣:
b = a' ;
我想能夠將此分配給變量的矩陣名稱,就像我在前面的sscanf c中可以做的那樣所有。我想我能夠做到:
[c,d] = b ;
但是這給我的錯誤:
Too many output arguments.
從答案https://stackoverflow.com/a/23800927/189270它看起來像我可能能夠做到這一點通過變換矩陣a
成單元陣列,但是,我似乎並沒有能夠找出這個正確的語法:
>> num2cell(a)
ans =
[1]
[2]
>> [c,d] = num2cell(a)
Error using num2cell
Too many output arguments.
>> [c,d] = num2cell(a')
Error using num2cell
Too many output arguments.
>> [c ; d] = num2cell(a)
[c ; d] = num2cell(a)
|
我可以通過分配到外地解決蠻力問題s b
,c
一次一個索引到矩陣a
。然而,我想這是一個常見的批量變量賦值類型(我在Mathematica中這樣做),所以我想知道我上面的嘗試有什麼問題,以及正確的matlab語法是什麼。
感謝。從交易文檔(例3)看來,[c,d] = b {:}也適用。 – 2014-10-04 13:25:46