如果在m脚本中调用sim(),基本都不会有什么问题;
可是如果在function中调用sim(),则会遇到错误,通常是由于工作空间的问题,这时需要将sim()所需要的所有变量都利用assignin导入到base workspace里面去,这样sim()才能正常运行。
可是这样运行之后,base workspace里面会有很多变量,在运行之后没有被删除,这时候需要在函数内将base workspace清空,如果直接在函数内输入clear all,是没有用的,因为这样只会清空函数自己的workspace,而不是base workspace。
可以在函数内添加此语句清空base workspace:
evalin('base','clear');
如果并不想清空base workspace内所有的变量,比如想留下emMod这个变量,其余全删掉,则输入:
evalin('base','clearvars -except emMod');
评价:Matlab要学的东西好多,保持一颗谦虚的心态,多积累,不气馁。