Matlab的总​​和:表达式以等号的左边是不是一个分配的有效目标

问题描述:

当我尝试运行此代码,此错误消息不断出现在MATLAB起来: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); 

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