在模拟过程中是否可以以表格或矩阵格式存储数据?我创建了一个启用的子系统,其中是一个嵌入式功能块。每当子系统启用时(在满足条件时),两个值表示A& B输入到嵌入式matlab函数中。我要求A分别存储在(1,1)和B中(1,2)。如果系统再次启用,那么新的A& B必须分别存储在(2,1)和(2,2)中。简而言之,我需要的是
A B
New_A New_B
Again_New_A Again_New_B
...
我面临的问题是:
1)需要将矩阵分配给mat = 0(10,2);在使用它之前。第一次启用子系统A和B使用输入第一和第二列 mat(i,1)= A; mat(i,2)= B;
在执行期间第二次启用系统时,先前存储的A和B值将被删除并重置为零。
第一次启用:
A B
0 0
0 0
...
第二次启用:
0 0
New_A New_B
0 0
...
重置以前存储的值。
2)无法将mat设置为mat = [];因为它抛出了一个无法初始化为空值的错误。
3)我尝试将新行附加到矩阵的末尾,但又引发了超出预定义维度的错误。
如果有任何方法可以得到我期待的东西,请告诉我。
谢谢 - Shruthi
答案 0 :(得分:0)
要在MATLAB功能块中的不同时间步之间存储数据,您应该使用以下模式。
persistent mat
if isempty(mat)
mat = zeros(10,2);
cnt = 1; % Counter to count number of times enabled
end
if cnt <= 10
mat(cnt,1) = A;
mat(cnt,2) = B;
end
cnt = cnt + 1;
使用persistent属性可以在不同的调用之间存储数据。