num = [1];
dem = [1 1 0 0];
T=[0.1,0.5,2,3,4,20];
ind='A,B,C,D,E,F'
index=strsplit(ind,',')
for i=1:length(T)
for j=1:length(index)
index(j)= tf(num ,dem,'Inputdelay',T(i)); %% error is here
end
for plotId = 1 : 6
subplot(3,2,plotId), bode(index(j))
grid on;
title(['delay=',num2str(T(plotId))])
end
end
Blockquote 問題是我無法使用索引我聽說過一些呼叫 eval 但我不知道
uj5u.com熱心網友回復:
從 ft 回傳的結果有很多屬性,你必須指定你需要哪一個:
for j=1:length(T)
results= tf(num ,dem,'Inputdelay',T(i));
index(j).num =results.num;
index(j).den =results.den;
index(j).Variable =results.Variable;
index(j).ioDelay =results.ioDelay;
index(j).InputDelay =results.InputDelay;
index(j).OutputDelay =results.OutputDelay;
index(j).Ts =results.Ts;
index(j).TimeUnit =results.TimeUnit;
index(j).InputUnit =results.InputUnit;
index(j).InputName =results.InputName;
index(j).InputGroup =results.InputGroup;
index(j).OutputName =results.OutputName;
index(j).OutputUnit =results.OutputUnit;
index(j).OutputGroup =results.OutputGroup;
index(j).Name =results.Name;
index(j).Notes =results.Notes;
index(j).UserData =results.UserData;
index(j).SamplingGrid =results.SamplingGrid;
end
uj5u.com熱心網友回復:
我對 TensorFlow 不太了解,這確實是您要問的問題,但是您收到錯誤的原因是變數的型別index在您使用時變成了“單元格陣列” strsplit:
ind='A,B,C,D,E,F'
index=strsplit(ind,',')
ind =
'A,B,C,D,E,F'
index =
1×6 cell array
{'A'} {'B'} {'C'} {'D'} {'E'} {'F'}
因此,當您嘗試index(j) = tf(...)將不是單元格的型別放入作為單元格的變數時。Matlab 不允許你這樣做。有關元胞陣列的更多資訊:https : //au.mathworks.com/help/matlab/ref/cell.html。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/389986.html
上一篇:將檔案加載到Matlab中的效率
