Matlab:迭代向量,为每个元素提供taylor扩展

时间:2017-02-08 13:06:10

标签: matlab loops iteration

我尝试使用2个嵌套的<Table Name="dbo.tblUserLogin" Member="tblUserLogins"> <Type Name="tblUserLogin"> <Column Name="UserID" Type="System.Int32" DbType="Int NOT NULL IDENTITY" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" /> <Column Name="Username" Type="System.String" DbType="NVarChar(20)" CanBeNull="true" /> <Column Name="Passwords" Type="System.String" DbType="NVarChar(20)" CanBeNull="true" /> <Column Name="IsAdmin" Type="System.Int32" DbType="Int" CanBeNull="true" /> <Association Name="tblUserLogin_tblEmployee" Member="tblEmployees" ThisKey="UserID" OtherKey="UserID" Type="tblEmployee" /> </Type> </Table> 循环迭代向量y,以返回向量中每个数字的泰勒展开式总和的列表。

不断返回错误

  

在赋值A(:) = B中,A和B中的元素数必须相同。

代码:

for

2 个答案:

答案 0 :(得分:0)

问题是你试图用一个数字填充y一个地方n + 1而y只是长度为n。

换句话说: length(y) = 6并尝试填写y(6+1)

也请尽量避免使用相同的计数器进行2次循环,因此请考虑使用j

对第二个循环计数器进行查询

答案 1 :(得分:0)

我不能说这会给每个点的泰勒展开,但它会纠正你的代码

n = 6 
x = [0.785398, 0.392699, 0.19635, 0.098175];
y = zeros(n, size(x,2));

for j = 1:size(x,2)

    for i = 0:n-1

        y(i+1, :) = ((-1)^i) * x.^(2*i+1) ./ factorial(2*i+1); 

    end

    SINx = sum(y(i+1, :))

end