如何解决“内部矩阵维度必须一致”错误?
How do I resolve the “Inner matrix dimensions must agree” error?
这是我在 CVX
中的代码:
load('C')
r=C(:,4);
t=C(:,5);
n = size(C,1);
N = 100;
for i=1:n
eta(i,1) = randn()/2;
end
cvx_begin
variable x(n,1)
maximize r'*x - t'*x
subject to
ones(n,1)'*x == N
x >= zeros(n,1)
exp(-x/N) >= eta
cvx_end
它在声明 objective 函数的行中给出以下错误:
“Inner matrix dimensions must agree.”
我做错了什么?
即使我按如下方式编写最后一个约束,错误仍然存在:
for i=1:n
exp(-x(i,1)/N) >= eta(i,1)
end
错误是我没有在 objective 函数两边加上括号,在这种特殊情况下这是必需的,因为它有 2 个项。因此,maximize (r'*x-t'*x)
解决了错误。
这是我在 CVX
中的代码:
load('C')
r=C(:,4);
t=C(:,5);
n = size(C,1);
N = 100;
for i=1:n
eta(i,1) = randn()/2;
end
cvx_begin
variable x(n,1)
maximize r'*x - t'*x
subject to
ones(n,1)'*x == N
x >= zeros(n,1)
exp(-x/N) >= eta
cvx_end
它在声明 objective 函数的行中给出以下错误:
“Inner matrix dimensions must agree.”
我做错了什么?
即使我按如下方式编写最后一个约束,错误仍然存在:
for i=1:n
exp(-x(i,1)/N) >= eta(i,1)
end
错误是我没有在 objective 函数两边加上括号,在这种特殊情况下这是必需的,因为它有 2 个项。因此,maximize (r'*x-t'*x)
解决了错误。