Matlab遇到赋值具有的非单一 rhs 维度多于非单一下标数的问题 今天在写程序的时候遇到了‘赋值具有的非单一 rhs 维度多于非单一下标数’这个问题,我并没有解决这个问题,但是也可以运行了,在这里和大家分享一下。 我的程序是这样: for subj=1:subjnumber Signal =data{subj}’; SignalInfo = nbt_Info; %this initializes an Info Object SignalInfo.converted_sample_frequency = 1000; %Sets the frequency to 250Hz. AmplitudeEnvelope = nbt_GetAmplitudeEnvelope(Signal, SignalInfo, 8, 13, 2/8); [DFAobject,DFA_exp] = nbt_doDFA(AmplitudeEnvelope, SignalInfo, [1 15], [0.8 25], 0.5, 1, 1, []); DFA_y(:,subj) = DFAobject.DFA_y; DFA_x(:,subj) = DFAobject.DFA_x’; DFA—exp(:,subj) =DFAobject.MarkerValues; end 当我运行程序的时候, DFA—exp(:,subj) =DFAobject.MarkerValues;,出现了赋值具有的非单一 rhs 维度多于非单一下标数这个问题,其中DFAobject.MarkerValues是一个64*1 double 的数据。 为了解决这个问题: 第一尝试的是,将 DFA—exp(:,subj) =DFAobject.MarkerValues;改成DFA—exp(1:64,subj) =DFAobject.MarkerValues;这个时候可以正常运行了,但是每一次循环之后会将上一次循环生成的那列数据的值变为0.没有找到原因 第二尝试是,将DFA—exp(:,subj) =DFAobject.MarkerValues;改成MarkerValues(:,subj) =DFAobject.MarkerValues;此时程序能正常运行,且没有报错也没有出现第一次尝试出现的问题。 到这我的问题算是解决了,如果有大神知道原因,请不吝指教。