0

是否可以在模拟过程中以表格或矩阵格式存储数据?我创建了一个启用的子系统,其中是一个嵌入式功能块。每当子系统启用(满足条件)时,两个值说 A 和 B 被输入到嵌入式 matlab 函数中。我要求 A 分别存储在 (1,1) 和 B 中 (1,2)。如果系统再次启用,则新的 A & B 必须存储在 (2,1) 和 (2,2)分别。简而言之,我需要的是

AB

新_A 新_B

再次_新_A 再次_新_B

……

我面临的问题是:

1) 需要将矩阵赋值给mat = zeros(10,2);在使用它之前。第一次启用子系统时,使用 mat(i,1) = A 在第一列和第二列中输入 A 和 B;垫(我,2)=乙;

当系统在执行期间第二次启用时,先前存储的 A 和 B 的值将被擦除并重置为零。

第一次启用:

AB

0 0

0 0

...

第二种启用:

0 0

新_A 新_B

0 0

...

先前存储的值被重置。

2)不能将mat设置为mat = [];因为它会引发一个错误,即无法将 mat 初始化为空值。

3)我尝试将新行附加到矩阵的末尾,但它再次引发超出预定义尺寸的错误。

请让我知道是否有任何方法可以得到我所期望的。

谢谢你-Shruthi

4

1 回答 1

0

要在 MATLAB Function 模块中的不同时间步之间存储数据,您应该使用以下模式。

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;

使用持久属性使您能够在不同调用之间存储数据。

于 2013-04-19T14:39:58.547 回答