我有一個資料結構,我正在嘗試替換其中的 char 值。我正在使用以下代碼:
raw(1,1).stimulus.values{1,1}.name=order{1};
如果我自己運行任何一方,我會得到一個類字串作為char回報。
raw(1,1).stimulus.values{1,1}.name
回報:
ans = 'stim_channel1'
order{1}回傳ans = 'visff'
但是如果我運行整個事情,我會收到以下錯誤:
Error using strcmp
Too many input arguments.
Error in Dictionary/subsasgn (line 233)
if strcmp(s.type,'()')
但我試圖用另一個字串替換一個字串。這怎么爭論太多了?我究竟做錯了什么?謝謝!Matlab R2021b,如果重要的話。
uj5u.com熱心網友回復:
當你單獨執行 LHS 時,它使用的subsref方法顯然可以處理多級索引。但是,看起來該類的分配方法subsasgn并非旨在處理多級索引。
您需要修復Dictionary/subsasgn,或者拆分 LHS,以便您只對Dictionary.
鑒于這raw(1,1).stimulus是有問題的Dictionary類,您需要確保在單個級別的索引分配上使用它。換句話說:
% Extract "values" from Dictionary
sv = raw(1,1).stimulus.values;
% Modify "values"
sv{1,1}.name = order{1};
% Put "values" back into Dictionary
raw(1,1).stimulus.values = sv;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/505850.html
