通过比较第一列的值来访问矩阵中的行

Acessing a row in a matrix with comparing the values of the first column

我想通过将用户定义的参数与第一列的值进行比较来访问矩阵的特定行。

伪代码例如:

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;

据我所知,for 循环或 if 语句在方程部分之外不起作用。

我如何在没有 if 或 for 循环的情况下完成这项任务?

写一个函数来返回 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;