Matlab sum:等号左边的表达式不是赋值的有效目标
Matlab sum: The expression to the left of the equals sign is not a valid target for an assignment
当我尝试 运行 此代码时,此错误消息不断出现在 matlab 中:
The expression to the left of the equals sign is not a valid target
for an assignment.
a_k
和 b_k
是大小为 (1,m)
的行向量。我不能使用命令 symsum
,因为它不允许我在 symsum
中索引这些向量。结果总和必须涉及 dirac
和 heaviside
函数。想法? :)
prompt = 'Enter m';
m = input(prompt);
prompt = 'Enter x-coordinates of dislocations';
a_k = input(prompt);
prompt = 'Enter y-coordinates of dislocations';
b_k = input(prompt);
syms x_1 x_2 y_1 y_2
F_1(y_1,y_2) = sum(heaviside(y_1-a_k(1,i))*dirac(1,y_2-b_k(1,i)), i=1:m);
您使用的 sum
语法无效,即 i=1:m
。
sum
计算数组中所有元素的总和。因此,您需要使用元素运算以矢量化方式重写公式,如下所示:
F_1(y_1, y_2) = sum(heaviside(y_1-a_k(1,1:m)).*dirac(1,y_2-b_k(1,1:m)));
当我尝试 运行 此代码时,此错误消息不断出现在 matlab 中:
The expression to the left of the equals sign is not a valid target for an assignment.
a_k
和 b_k
是大小为 (1,m)
的行向量。我不能使用命令 symsum
,因为它不允许我在 symsum
中索引这些向量。结果总和必须涉及 dirac
和 heaviside
函数。想法? :)
prompt = 'Enter m';
m = input(prompt);
prompt = 'Enter x-coordinates of dislocations';
a_k = input(prompt);
prompt = 'Enter y-coordinates of dislocations';
b_k = input(prompt);
syms x_1 x_2 y_1 y_2
F_1(y_1,y_2) = sum(heaviside(y_1-a_k(1,i))*dirac(1,y_2-b_k(1,i)), i=1:m);
您使用的 sum
语法无效,即 i=1:m
。
sum
计算数组中所有元素的总和。因此,您需要使用元素运算以矢量化方式重写公式,如下所示:
F_1(y_1, y_2) = sum(heaviside(y_1-a_k(1,1:m)).*dirac(1,y_2-b_k(1,1:m)));