当我尝试运行此代码时,此错误消息会一直显示在matlab中:
等号左侧的表达式不是有效目标 作业。
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);
答案 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)));