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_kb_k 是大小为 (1,m) 的行向量。我不能使用命令 symsum,因为它不允许我在 symsum 中索引这些向量。结果总和必须涉及 diracheaviside 函数。想法? :)

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)));