我在模型中多次使用Matlab 1级S函数,但不希望相互覆盖全局/持久变量。
解决方案可能是工作向量,但关于1级S函数工作向量的文档很少。我在哪里获得ssSetNumRWork函数的SimStruct S?
谢谢!
答案 0 :(得分:1)
正确的做法是将代码升级为2级S函数,这不应该是困难的。
1级m代码S函数没有工作向量(并且所有ssGet / Set函数都用于c代码S函数)。他们不再被推荐的原因是他们的功能有限 - 没有使用2级功能就没有好办法解决这个问题。
您可以使用持久变量(在1级S函数的每个子函数内)。但全局变量使得它们随处可见,所以试图使用它们而不希望每个人都看到它们似乎毫无意义。 (注意:你绝不应该使用全局变量。)
话虽如此,如果您真的想要使用Level-1功能,那么在每个S-Function中,您可以使用getappdata和setappdata函数来充当工作向量存储。但是,如果您要解决这个问题,无论如何升级到2级S功能都会更容易。