0

例如,如果我有:

Q1=4;
Q2=5;
PG=2:60

A1=Q1./sqrt(PG);
A2=Q2./sqrt(PG);

plot(PG,A1)
plot(PG,A2)

我可以做某事吗:?

Q=[Q1,Q2];
A=Q./sqrt(PG);
plot(PG,A(1))
plot(PG,A(2))

还是……避免A1和A2?

4

1 回答 1

2

A=bsxfun(@rdivide,[Q1;Q2],sqrt(PG))Q1可以(注意and之间的分号,而不是逗号Q2),但如果问题中的代码是您的用例,并且您希望其他人阅读和理解代码,我建议不要使用它。

您必须解决A使用A(1,:)and的行A(2,:)(无论您如何获得A),但您可能还是想plot(PG,A)要这样做。

[在第一条评论后编辑:] rdivide只是通常./在 MATLAB 代码中表示的函数的名称,适用于相同大小的数组或标量和数组。bsxfun将简单地以它认为最合适的方式将两个参数函数应用于提供给它的其他两个参数(为了简化一点)。arrayfun做类似的事情:将一个函数应用于一个数组的所有元素。要在这里应用,需要一个PG内部硬编码的函数。

于 2013-02-18T11:53:54.460 回答