Matlab函数的维度问题

时间:2013-11-04 08:29:43

标签: matlab function simulink dimension

我认为这应该相当简单,我真的不知道出了什么问题,已经试了一个星期,天啊!为自己感到羞耻。

我在Workspace中定义了以下内容:

I = [5 5.1 5.2 5.2];
V = [95 80 85 20];

我期待这样的输出:

%// at t=0
arr=20

%// at t=1    
arr=30

%// at t=2
arr=40

当我运行模拟时,我得到的是:

%// at t=0
arr = 20, 0, 0, 0

%// at t=1
arr = 0, 10, 0, 0

%// at t=2
arr = 0, 0, 10, 0

此结果几乎没有问题:

  1. 我希望在特定时间只有一个arr值,但一次只有四个arr

  2. 我想知道为什么arr永远不会累加到30和40等

  3. 我的系统如下:

    enter image description here

    代码在这里:

    enter image description here

    我设法一次只获得一个值,但为什么arr永远不会累加到30和40等?它一直检测到arr(count-1,1)始终为零

1 个答案:

答案 0 :(得分:2)

在最终end之前,插入

scalar_value = arr(count,1);

并将您的函数声明为

[arr, scalar_value] = fcn(signal,V,count)

这将获得4x1向量arr中的感兴趣值(scalar_value),而不会中断arr逻辑。