MATLAB:=语法?

MATLAB:=语法?,matlab,syntax,wolfram-mathematica,Matlab,Syntax,Wolfram Mathematica,我在调试一些代码时遇到困难(对MATLAB来说是新的)。我遇到了以下代码行: CC[theta_] := {{Cos[theta],I Sin[theta]},{I Sin[theta], Cos[theta]}} 我得到一个错误声明: “:”处的分析错误:用法可能是无效的MATLAB语法 当我删除:时,我得到了完全相同的消息,只是在本例中它说“Parse error at”=”。有办法解决这个问题吗?这是相当旧的MATLAB代码,因此我不确定语法样式是否已更改 提供的代码显然源于Mathem

我在调试一些代码时遇到困难(对MATLAB来说是新的)。我遇到了以下代码行:

CC[theta_] := {{Cos[theta],I Sin[theta]},{I Sin[theta], Cos[theta]}}
我得到一个错误声明:

“:”处的分析错误:用法可能是无效的MATLAB语法


当我删除
时,我得到了完全相同的消息,只是在本例中它说“Parse error at”=”。有办法解决这个问题吗?这是相当旧的MATLAB代码,因此我不确定语法样式是否已更改

提供的代码显然源于Mathematica。为了在Matlab中实现同样的功能,我们可以定义一个函数句柄:

CC = @(theta) [cos(theta), 1i*sin(theta); 1i*sin(theta), cos(theta)]
1i
是Matlab中的虚单位(
I
在Mathematica中)。 Matlab使用
[a,b;c,d]
来定义
2x2
-矩阵(
{{a,b},{c,d}
在Mathematica中)。定义
:=
在Matlab中是不可能的。可以使用函数句柄(如示例中所示)或符号函数

theta=pi/4
处使用命令
CC(pi/4)
计算得出以下结果:

 0.7071 + 0.0000i   0.0000 + 0.7071i
 0.0000 + 0.7071i   0.7071 + 0.0000i

所提供的代码显然源于Mathematica。为了在Matlab中实现同样的功能,我们可以定义一个函数句柄:

CC = @(theta) [cos(theta), 1i*sin(theta); 1i*sin(theta), cos(theta)]
1i
是Matlab中的虚单位(
I
在Mathematica中)。 Matlab使用
[a,b;c,d]
来定义
2x2
-矩阵(
{{a,b},{c,d}
在Mathematica中)。定义
:=
在Matlab中是不可能的。可以使用函数句柄(如示例中所示)或符号函数

theta=pi/4
处使用命令
CC(pi/4)
计算得出以下结果:

 0.7071 + 0.0000i   0.0000 + 0.7071i
 0.0000 + 0.7071i   0.7071 + 0.0000i

你到底想做什么?代码完全不是Matlab风格。CC是θ的函数?我认为CC是θ的函数。代码类似于什么语言?我现在不确定它在这里要做什么,因为我正在经历它。对我来说是Mathematica。@Jommy:当然是Mathematica。CC也是θ的函数。。。有关更多详细信息和Matlab中的相应解决方案,请参见我的答案。如果给您的“Matlab”代码包含:=,它也可能是MuPAD。您到底想做什么?代码完全不是Matlab风格。CC是θ的函数?我认为CC是θ的函数。代码类似于什么语言?我现在不确定它在这里要做什么,因为我正在经历它。对我来说是Mathematica。@Jommy:当然是Mathematica。CC也是θ的函数。。。有关更多详细信息和Matlab中的相应解决方案,请参见我的答案。如果给您的“Matlab”代码包含:=,它也可能是MuPAD。您也可以在Matlab中使用
i
,因为默认情况下它是虚单位,但是我认为
1i
是更安全的选择,因为Matlab将允许您覆盖
I
,因此,如果您在代码中意外地将其用作循环变量,您可能会给自己带来问题。@Dan:这正是我使用
1i
的原因。文档中说:«为了提高复杂算法的速度和鲁棒性,使用1i和1j代替i和j。»Matlab甚至在编辑器中通知您
i
经常在循环中使用,因此
1i
是我的选择。您也可以在Matlab中使用
i
,因为默认情况下它是虚单位,但是我认为
1i
是更安全的选择,因为Matlab将允许您覆盖
I
,因此,如果您在代码中意外地将其用作循环变量,您可能会给自己带来问题。@Dan:这正是我使用
1i
的原因。文档中说:«为了提高复杂算法的速度和鲁棒性,使用1i和1j代替i和j。»Matlab甚至在编辑器中通知您
i
经常在循环中使用,因此
1i
是我的选择。