求和矩阵误差八度
Sum matrix error octave
我从一个形状为 N · 2 · M 的矩阵开始,我称它为 x。然后,我有另一个名为 theta 的矩阵,形状为 M。以下代码在八度音程中给出以下错误:不一致的参数(op1 是 2x2x2,op2 是 2x2x2)。
x(n+1,:,:) = x(n+1,:,:) + [cos(theta(:)) sin(theta(:))]
有什么问题吗?
PS。这是完整的代码:
M=30;
N=32;
for n=1:1:N
z = [1.0 0.0]
x(1,1,1:M) = z(1);
x(1,2,1:M) = z(2);
x(n+1,:,:) = x(n,:,:) + randn([1,2,M])
theta(:) = randn([M,1]);
x(n+1,:,:) = x(n+1,:,:) + [cos(theta(:)) sin(theta(:))]
end
size([cos(theta(:)) sin(theta(:))])
是 30x2 而 size(x(n+1,:,:))
是 1x2x30
他们不匹配。
我不知道这在数学上是否是您所需要的(即如果加在一起的索引是应该的),但您可以通过以下方式解决此问题:
x(n+1,:,:) = x(n+1,:,:) + reshape([cos(theta(:)) sin(theta(:))].',1,2,M);
我从一个形状为 N · 2 · M 的矩阵开始,我称它为 x。然后,我有另一个名为 theta 的矩阵,形状为 M。以下代码在八度音程中给出以下错误:不一致的参数(op1 是 2x2x2,op2 是 2x2x2)。
x(n+1,:,:) = x(n+1,:,:) + [cos(theta(:)) sin(theta(:))]
有什么问题吗?
PS。这是完整的代码:
M=30;
N=32;
for n=1:1:N
z = [1.0 0.0]
x(1,1,1:M) = z(1);
x(1,2,1:M) = z(2);
x(n+1,:,:) = x(n,:,:) + randn([1,2,M])
theta(:) = randn([M,1]);
x(n+1,:,:) = x(n+1,:,:) + [cos(theta(:)) sin(theta(:))]
end
size([cos(theta(:)) sin(theta(:))])
是 30x2 而 size(x(n+1,:,:))
是 1x2x30
他们不匹配。
我不知道这在数学上是否是您所需要的(即如果加在一起的索引是应该的),但您可以通过以下方式解决此问题:
x(n+1,:,:) = x(n+1,:,:) + reshape([cos(theta(:)) sin(theta(:))].',1,2,M);