我正在從 Simulink 匯入資料,翻轉資料,然后嘗試使用 Simulink 模塊匯入資料:
從作業區
這總是回傳錯誤。我試過這個,但它不起作用:
simOut = sim('sim1', Simulation_Time);
t = simOut.P.time;
P_tilde = simOut.P.Data; % size: 2x2x3001
P_data = flip(P_tilde); % size: 2x2x3001, but with the data flipped
P_import = P_data; % import block for 'sim2'
simOut2 = sim('sim2', Simulation_Time);
回傳的錯誤:
From Workspace 模塊“sim2/From Workspace”不支持的輸入格式。可用的格式有雙非復矩陣、帶或不帶時間的結構或以 MATLAB 時間序列作為葉節點的結構。所有格式都要求資料是有限的(不是 Inf 或 NaN)。
有誰知道如何解決它?我已經嘗試并閱讀了“來自作業區”塊的描述,但我并不聰明。例如推薦使用的功能;“timeseries(P_data)”或“timetable(P_data)”不起作用,只會回傳錯誤。
uj5u.com熱心網友回復:
解決方案有點過于復雜,但它確實有效。我翻轉 mx 2x2xn 矩陣的每個元素,然后創建一個 timeseries():
simOut = sim('m2_simP', 'StartTime','0','StopTime', num2str(Simulation_Time),'FixedStep',num2str(Time_Step));
t = simOut.P.time;
P_tilde = simOut.P.Data;
p11 = flip(reshape(P_tilde(1,1,:),[],1));
p12 = flip(reshape(P_tilde(1,2,:),[],1));
p22 = flip(reshape(P_tilde(2,2,:),[],1));
for i = 1:size(t,1)
P_data(1,1,i) = p11(i,1);
P_data(1,2,i) = p12(i,1);
P_data(2,1,i) = p12(i,1);
P_data(2,2,i) = p22(i,1);
end
P_import = timeseries(P_data, t);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/475414.html
