MATLAB-带自变量的矩阵函数?

MATLAB-带自变量的矩阵函数?,matlab,matrix,Matlab,Matrix,我正在尝试创建一个函数,它返回一个矩阵,其中包含一个变量“l”,它是一个自变量,稍后将被扫描以进行绘图 我将根据用户输入计算“phi”,其中包括“n”和“d”,然后我将使用“n”、“d”和“phi”找到“a”、“b”、“c”和“d”,以创建一个矩阵“m”。该矩阵“m”将是“l”的函数 我真的不喜欢Matlab的编码风格,与C++和Python相比…你们将如何实现这个功能 小结:我想要一个函数,它返回一个矩阵,该矩阵包含一个自变量,稍后在绘图时进行扫描。是否要使用 如果是这样,我想你想要: phi

我正在尝试创建一个函数,它返回一个矩阵,其中包含一个变量“l”,它是一个自变量,稍后将被扫描以进行绘图

我将根据用户输入计算“phi”,其中包括“n”和“d”,然后我将使用“n”、“d”和“phi”找到“a”、“b”、“c”和“d”,以创建一个矩阵“m”。该矩阵“m”将是“l”的函数

我真的不喜欢Matlab的编码风格,与C++和Python相比…你们将如何实现这个功能

小结:我想要一个函数,它返回一个矩阵,该矩阵包含一个自变量,稍后在绘图时进行扫描。

是否要使用

如果是这样,我想你想要:

phi = 2*pi*n*d/sym('l');
a = cos(phi);
b = 1i*sin(phi)/n;
c = 1i*n*sin(phi);
d = cos(phi);
m = [a b;c d];
顺便问一下,您是否知道自己的
d
别名?这是故意的吗?

你的意思是使用

如果是这样,我想你想要:

phi = 2*pi*n*d/sym('l');
a = cos(phi);
b = 1i*sin(phi)/n;
c = 1i*n*sin(phi);
d = cos(phi);
m = [a b;c d];
顺便问一下,您是否知道自己的
d
别名?这是故意的吗?

你可以有两种选择

1) 创建一个函数,该函数根据
n
d
l

BuildM = @(n,d,l)[cos((2*pi*d*n)/l),(sin((2*pi*d*n)/l)*i)/n;n*sin((2*pi*d*n)/l)*i,cos((2*pi*d*n)/l)];

BuildM(4,2,100)  %ans=[0.8763,0.1204i;1.9270i,0.8763]
2) 使用符号工具箱(如果可能)

你可以有两个选择

1) 创建一个函数,该函数根据
n
d
l

BuildM = @(n,d,l)[cos((2*pi*d*n)/l),(sin((2*pi*d*n)/l)*i)/n;n*sin((2*pi*d*n)/l)*i,cos((2*pi*d*n)/l)];

BuildM(4,2,100)  %ans=[0.8763,0.1204i;1.9270i,0.8763]
2) 使用符号工具箱(如果可能)


1)的解是否允许l是一个符号?我将把大量的“m”矩阵相乘,每个矩阵都包含变量“l”。然后,稍后,我将绘制结果,并且“l”将发生变化。是的,您可以将函数句柄(语法)与符号变量组合起来。好的,很好。我回家后会测试一下。我真的很感谢你的时间。1)的解决方案允许l成为一个符号吗?我将把大量的“m”矩阵相乘,每个矩阵都包含变量“l”。然后,稍后,我将绘制结果,并且“l”将发生变化。是的,您可以将函数句柄(语法)与符号变量组合起来。好的,很好。我回家后会测试一下。我真的很感谢您的时间。您所说的“d的别名”是什么意思?您在定义
d
时使用
d
,但在构建矩阵
m
时重新分配
d
。对于同一范围内语义不同的值,最好不要使用相同的变量名。明白了。我没有注意到。你所说的“d的别名”是什么意思?你在定义
d
时使用
d
,但是重新分配
d
来构造矩阵
m
。对于同一范围内语义不同的值,最好不要使用相同的变量名。明白了。我没注意到。