我在x
和y
中有数据,我想使用Matlab 解决下一个等式。如何编写matlab CODE方程?
y= y1, ...,y(n-1),yn;
x=x1,...x(n-1),xn
例如
C= 0.2345+5.423*y(n-1)*x(n-3)+2*y(n-5)*x(n-4)
答案 0 :(得分:0)
好的,您所描述的是矢量/矩阵乘法问题,您可以将其编码为:
c0 = 0.2345; % this is your first constant that you use in C
n = 6; % for the sake of argument, I will assume n=6;
M = [ 0 2 0 0 0 0;
0 0 0 0 0 0;
0 0 0 0 0 0;
0 0 0 0 0 0;
0 0 5.423 0 0 0;
0 0 0 0 0 0];
C = c0 + y' * M * x;
我假设两个向量x
和y
都是列向量。 Matlab表示法y'
是向量y
的转置,它是一个行向量。
当我们写C = c0 + y'*M*x
时,我们基本上会说(使用伪代码)
C = c0 + sum(i=1:n)( sum(j=1:n)( m(i,j) * y(i) * x(j) ) )
请注意,此方法允许您将任意因子乘以y(i)*x(j)
简单地存储在M(i,j)
位置。