matlab中如何定义循环递增系数,例如第一次循环为a1,第二次为a2。例如fx=ai*sin(i*pi*x)d的和,i从1到n.

如题所述

第1个回答  2011-11-22
%假设d是一个已知数
%如果ai是已知,把n个ai写成一个一维矩阵
%如果ai未知,把每个ai求出来,写成如下的向量
A=[a1 a2 a3 ... ai ... an]; %一维矩阵无所谓是行向量还是列向量
%下面求f(x)=ai*sin(i*pi*x)d的和Sum_f
Sum_f=0; %初始化
for i=1:n
temp=A(i)*sin(i*pi*x)*d;
Sum_f=Sum_f+temp;
end追问

还是不行啊,出来这个:
??? Undefined function or variable "a1".

Error in ==> collocation5 at 2
A=[a1 a2 a3 a4 a5]

第2个回答  2011-11-22
把要循环递增的系数做成一个数组就行了。

A=[a1,a2,……an];
fx=A(1,i)*sin(i*pi*x)*d追问

还是不行啊,出来这个:
??? Undefined function or variable "a1".

Error in ==> collocation5 at 2
A=[a1 a2 a3 a4 a5]
顺便问一下省略号表达或者说怎么输进去的?用A=[a1:an]怎么不行?

追答

A数组是要自己定义的,如果有规律就用for来做循环,无规律就一个一个输入。数组中是不能用省略号的,那是我随便写的。

本回答被提问者采纳
相似回答