простой способ изменить элемент параметра - PullRequest
0 голосов
/ 14 июня 2019

Мне нужно изменить элемент b (изменить 1 на 0 и 0 на 1), чтобы получить новый параметр c (j). Я хочу использовать опцию макроса, это возможно?

set j/1*100/;
parameter b(j) ,c(j);
*suppose b(j) initialized
c(j)=b(j);
loop(j,
if(c(j)=1,
    c(j)=0;
else
    c(j)=1;
);

Спасибо! * * 1004

1 Ответ

1 голос
/ 14 июня 2019

Это можно сделать в макросе.Однако, если вы просто хотите переключить 0/1, вы также можете просто использовать оператор not.Посмотрите на эту модифицированную версию вашего кода:

set j/1*100/;
parameter b(j) ,c(j);
* Fill with random data
b(j) = uniformInt(0,1);
* Note: This is actaully not necessary; you could also use b directly below
c(j)=b(j);

c(j) = not c(j);
...