Matlab sum:等号左边的表达式不是赋值的有效目标

时间:2017-05-31 18:43:03

标签: matlab compiler-errors sum symbolic-math

当我尝试运行此代码时,此错误消息会一直显示在matlab中:

  

等号左侧的表达式不是有效目标   作业。

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

1 个答案:

答案 0 :(得分:1)

您使用的是无效的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)));