Matlab的总和:表达式以等号的左边是不是一个分配的有效目标
问题描述:
当我尝试运行此代码,此错误消息不断出现在MATLAB起来: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);
答
您使用的是无效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)));