MATLAB:在MATLAB中使用Vectorize for循环

时间:2014-12-04 18:43:52

标签: matlab vectorization simulink

我想要对这段代码进行矢量化。是否有可能做到这一点?我尝试找到解决方案,但我无法在谷歌上找到任何好结果。

for pos=length1+1:length
    X1(pos) = sim(net1, [demandPred(pos), demand(pos-1), X1(pos-1), X1(pos-2)]')';
    X2(pos) = sim(net1, [demandPred(pos), demand(pos-1), X2(pos-1), X2(pos-2)]')';
end

提前致谢。 :)

修改1:

我要模拟的模型是一个简单的GRNN。

net1 = newgrnn([demand(169:trainElem), demand(169-1:trainElem-1), X1(169 - 1:trainElem - 1), X1(169 - 2:trainElem - 2)]', 0.09);

1 个答案:

答案 0 :(得分:1)

Simulink模型可以进行矢量化吗?有时。 可以 您的 Simulink模型进行矢量化吗?在没有看到模型的情况下无法判断 - 以及如何从m代码中调用它(正如您在问题中所示)并不是一种指示。

矢量化的一个例子是:考虑一个带有信号s1的模型,它被添加到常数K,并假设你需要运行不同值的模型,如果K.你可以使用一个循环(就像m代码你然后,你可以使K成为一个向量,在这种情况下,所有的值都会被添加到s1,结果将是一个信号矢量s1 + K(1),s1 + K(2),...,s1 + K(n),只需执行一次模型就可以进行所有这些求和。

但是,如果没有看到模型,是否可以在模型中完成这种事情是无法确定的。