T = 3;
K = 3;
q = 1;
p = [10,1,8];
v = {};
v(1,:) = {[0.08 0.01 1.13;
0 0.02 1.1;
0 0 1.03]};
v(2,:) = {[0.06 0.03 1.07;
0 0.04 1.16;
0 0 1.04]};
v(3,:) = {[0.03 0.01 1.08;
0 0.08 1.01;
0 0.0 1.1]};
cvx_begin
v_max = [0.08 0.01 1.13;
0 0.04 1.16;
0 0 1.1];
variable m(3);
expression P(3);
for i = 1:T
P(i) = (1+1/100)^(m(i)-i)*(1+sum(v_max(m(i),:)));
end
minimize(sum(P))
subject to
for i = 1:T
m(i)<=T;
m(i)>=i;
end
cvx_end
I get an error as

Réponses (2)

the cyclist
the cyclist le 26 Sep 2021

0 votes

I don't know CVX, but the error message seems straightforward. My best guess is that m is a variable of type cvx, and you are trying to use it as an index in this expression:
v_max(m(i),:)
It seems that this syntax is not allowed. Perhaps there is some kind of type conversion you can use.

2 commentaires

Aniz Mohamed Rafeeck
Aniz Mohamed Rafeeck le 27 Sep 2021
How do you rectify it
the cyclist
the cyclist le 27 Sep 2021
I don't know. You are asking a CVX question, not a MATLAB question. Maybe you can find a forum for CVX.

Connectez-vous pour commenter.

Sulaymon Eshkabilov
Sulaymon Eshkabilov le 26 Sep 2021

0 votes

Here is the corrected part of the code:
...
%cvx_begin % Invalid MATLAB command
v_max = [0.08 0.01 1.13;
0 0.04 1.16;
0 0 1.1];
% variable m(3); % Invalid MATLAB command
% expression P(3); % Invalid MATLAB command
m= [1, 2, 3];
for i = 1:T
P(i) = (1+1/100)^(m(i)-i)*(1+sum(v_max(m(i),:)));
end
min(sum(P))
for i = 1:T
m(i)<=T;
m(i)>=i;
end
% cvx_end % Invalid MATLAB command

Catégories

En savoir plus sur MATLAB dans Centre d'aide et File Exchange

Produits

Version

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by