algorithm - Modelica:将数组返回值分配给标量

标签 algorithm matrix vector modelica dymola

以下模型尝试将函数调用的向量返回值分配给标量向量。如果它在方程部分内,它会检查并工作,但在算法部分内会失败。这是我正在使用的 Modelica 工具中的错误,还是我做错了什么?而且,不引入中间变量x[2]怎么写呢?

model returnVector
  Real x1;
  Real x2;
  Real x[2];
  Real A[2,2] = [1,2;3,4];
  Real b[2] = {8,7};
algorithm 
  x = Modelica.Math.Matrices.solve(A,b);
  {x1, x2} = Modelica.Math.Matrices.solve(A,b);
end returnVector;

最佳答案

你做错了什么:-)

在等式中,左边是任何表达式;所以你甚至可以写 Modelica.Math.Matrices.solve(A,b)={x1,x2};

在算法中,左侧必须是组件引用(Modelica 3.4 中的第 11.2 节;https://modelica.org/documents/ModelicaSpec34.pdf),右侧会被评估,然后分配给左侧变量。

关于algorithm - Modelica:将数组返回值分配给标量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57492247/

相关文章:

java - ArrayList中合并对象的高效算法

haskell - 部分未装箱的向量

c++ - 叉积的输出

c# - 如何在遵守某些约束的同时生成数字序列?

algorithm - 当 n 的极限趋于无穷大时,用小 oh 表示法

java - 检查链表是否是回文-我在这里缺少什么?

python - netCDF 到 *.csv,无需循环(!)

Matlab恒等移位矩阵

c - 如何创建这个公式?

c++ - 最小的 C++ STL vector 实现问题