Matlab语法帮助* 我现在使用本征库把一些MATLAB代码转换成C++。 我已经得到了matlab代码,如下所示:
我有两个矩阵Matlab语法帮助* 我现在使用本征库把一些MATLAB代码转换成C++。 我已经得到了matlab代码,如下所示:,c++,matlab,matrix,eigen,C++,Matlab,Matrix,Eigen,我有两个矩阵N\u R,G\u R N\R是一个8行10列矩阵,而 G\u R是8值向量的对角矩阵 有一个系统矩阵,其中包含术语N\u R.*G\u R*N\u R 我在这个术语上遇到了真正的问题,并且一直无法找到的组合是什么*实际上是这样 我猜这是某种转置和乘法,但我不断得到关于尺寸不匹配的错误。matlab中的'运算符执行矩阵共轭,而'执行简单的转置,如中所述。请注意,'无效,但“无效 N_R.' * G_R * N_R 会是 (感谢@Dev iL指出我在原始答案中交换了这两种含义)mat
N\u R
,G\u R
N\R
是一个8行10列矩阵,而
G\u R
是8值向量的对角矩阵
有一个系统矩阵,其中包含术语N\u R.*G\u R*N\u R
我在这个术语上遇到了真正的问题,并且一直无法找到的组合是什么*代码>实际上是这样
我猜这是某种转置和乘法,但我不断得到关于尺寸不匹配的错误。matlab中的'
运算符执行矩阵共轭,而'
执行简单的转置,如中所述。请注意,'代码>无效,但“
无效
N_R.' * G_R * N_R
会是
(感谢@Dev iL指出我在原始答案中交换了这两种含义)matlab中的
操作符执行矩阵共轭,而'
执行简单的换位,如中所述。请注意,'代码>无效,但“
无效
N_R.' * G_R * N_R
会是
(感谢@Dev iL指出我在原始版本的答案中交换了这两种含义)正如您所说,
是MATLAB中的转置运算符(注意:它不包含空格),而*
是矩阵乘法
现在,让我们回顾一下剩下的内容(为了清楚起见,我冒昧地用括号括起来):
(N_R.)*(G_R)*(N_R)
N\u R
是8x10,因此N\u R
T是10x8
(N_R.)*(G_R)
是10x8*8x8,所以是10x8
- 因此,
(N_R.)*(G_R)*N_R
是10x8*8x10,所以是10x10
正如您所说,'
是MATLAB中的转置运算符(注意:它不包含空格),而*
是矩阵乘法
现在,让我们回顾一下剩下的内容(为了清楚起见,我冒昧地用括号括起来):
(N_R.)*(G_R)*(N_R)
N\u R
是8x10,因此N\u R
T是10x8
(N_R.)*(G_R)
是10x8*8x8,所以是10x8
- 因此,
(N_R.)*(G_R)*N_R
是10x8*8x10,所以是10x10
N\u R.*G_R*N_R
不是有效的MATLAB语法。“我几乎为你的困惑感到抱歉。”安德拉斯达克。嗯,唯一的问题是它之间的空间。“和”,这可能是一个编辑问题。@Johan,我同意。但我的思路是:“哦,基本语法问题,由10k用户回答,呸。”-->“哦,MATLAB代码就是这样写的吗?恶魔,谁会做这样的事?糟糕的操作。”-->“等等,这甚至都不是有效的MATLAB语法。那么为什么有人要求语法,而不是使用他们所要求的语法呢?”。(我承认我的暴躁情绪可能是由于SO文档的复杂性造成的)N\R.*G_R*N_R
不是有效的MATLAB语法。“我几乎为你的困惑感到抱歉。”安德拉斯达克。嗯,唯一的问题是它之间的空间。“和”,这可能是一个编辑问题。@Johan,我同意。但我的思路是:“哦,基本语法问题,由10k用户回答,呸。”-->“哦,MATLAB代码就是这样写的吗?恶魔,谁会做这样的事?糟糕的操作。”-->“等等,这甚至都不是有效的MATLAB语法。那么为什么有人要求语法,而不是使用他们所要求的语法呢?”。(我承认我的暴躁情绪可能是由于与SO Docs的复杂关系造成的)