就如图所示的这种简单的函数,代入n个x,然后累乘。
x随便取,无所谓
X=xlsread('1.xlsx');
N=size(X),n=N(1)
syms k c;
for i=n
f(i)=k*X(i)/c
end
F=prod(f); %我这个式子写出来f全为0
f(1)=k*X(1)/c
f(2)=k*X(2)/c
F=f(1)*f(2); %这样单独写出来就没事
这是因为你的循环没有对1到n,而只是对i=n循环了
改成这样的就可以
X=xlsread('1.xlsx');
N =size(X); n=N(1);
syms k c;
for i=1:n % 1~n做循环
f(i)=k*X(i)/c;
end
F=prod(f) %我这个式子写出来f全为0
确实是因为没写成1:n的问题,同时建议向量化处理,例如:
X=[1 2 3 4 5];
syms k c;
F=prod(k.*X./c)
syms的功能和sym函数相同,但syms可以同时创建多个符号对象,因此在创建多个符号变量时语法上要比使用sym简单。
1、创建符号变量x和y;
例如:syms x y
2、列出所有符号变量、函数和数组
创建一些符号变量、函数和数组如:syms a f(x);A = sym('A',[2 3]);