我有一個Simulink模型在模型回調的InitFcn中調用腳本。該腳本初始化基礎工作區中的一堆變量,以便它們可以被Simulink模型使用。在使用類時,我發現使用load_system
函數會使Matlab崩潰,並且open_system
函數可以正常工作。load_system和open_system之間的Simulink區別
這裏的類:
classdef simulinkModel
properties
model = '';
end
methods
function obj = simulinkModel(modelName)
obj.model = modelName;
end
function openModel(obj)
% Make sure any previously open model are closed, and open the model.
if bdIsLoaded(obj.model)
obj.closeModel()
end
%load_system(obj.model) % Matlab crash
open_system(obj.model) % Matlab run the model correctly
end
function closeModel(obj)
close_system(obj.model, 0)
end
function runModel(obj)
sim(obj.model)
end
end
end
,並在命令窗口中:
objModel = simulinkModel('test');
objModel.openModel
objModel.runModel
那麼如何來它與load_system
VS的open_system
crashs? open_system
函數對load_system
函數沒有做的基本工作空間有什麼作用?
編輯
,我決定嘗試運行外部類簡單的命令來查看問題是否在其他地方。因此,在命令窗口中輸入:
load_system('test')
sim('test')
在命令窗口中執行此操作時,Matlab也會崩潰。所以我開始懷疑調用load_system
函數時是否沒有執行模型回調。
什麼樣的崩潰?任何錯誤消息? – Daniel
@Daniel Appcrash我認爲。 Windows錯誤消息。 –
什麼錯誤文本? – Daniel