Доступ к строке в матрице со сравнением значений первого столбца - PullRequest
0 голосов
/ 01 июля 2018

Я хочу получить доступ к определенной строке матрицы, сравнивая определенный пользователем параметр со значениями первого столбца.

Псевдокод Например:

parameter Real userinput;
Real matrix[4,10] = [10,1,3,5; 3,1,5,9;.....];
Integer rowidentity;

for i in 1:10 loop
 if matrix[1,i] = userinput then
   i = rowidentity;
 end if;
end for;

Из того, что я знаю для циклов или если операторы не работают вне части уравнения.

Как я могу выполнить эту задачу без циклов if или for?

1 Ответ

0 голосов
/ 01 июля 2018

Напишите функцию, которая делает это, возвращая i. Матрица в качестве ввода. Затем используйте его в разделе уравнения.

function getIndex
  input Real userinput;
  input Real matrix[4,10] = [10,1,3,5; 3,1,5,9;.....];
  output Integer rowidentity;
algorithm
for i in 1:10 loop
 if matrix[1,i] == userinput then
   rowidentity := i;
   return;
 end if;
end for;
end getIndex;
...