matlab生成函数向量,matlab – 如何创建表达式或向量函数句柄,然后绘制它?

如何使用产品标量值创建向量函数句柄(匿名函数),然后绘制结果.显然,我想绘制这个公式

Let f(x,ym)= (1-exp(x-ym)/h); and

iX(x)=1/6.f(x,ym(1))+

7/6.f(x,ym(2))+

25/6.f(x,ym(3))+

43/6.f(x,ym(4));

iY(x)=1/5.f(x,ym(1))+

2/5.f(x,ym(2))+

14/5.f(x,ym(3))+

4/5.f(x,ym(4));

这个代码没有循环但是给我:”使用绘图时出错转换从sym加倍是不可能的”.

clear all;clc;a=0;b=2;n=3;h=(b-a)/n;ym=a:h:b;

X=[ 1/6, 7/6, 25/6,43/6]; % Data

Y=[ 1/5, 2/5, 14/5,14/5];

f=@(x,ym) (1-exp(x-ym)/h);

% with syms

syms x;

iX=f(x,ym(1:length(ym))).*X; % result iX= [f.1/6 , f.7/6 , f.25/6 , f.43/6]

iY=f(x,ym(1:length(ym))).*Y;

iFx= sum(iX);iFy=sum(iY); % result iFx= f.1/6 + f.7/6 + f.25/6 + f.43/6

x=ym;

plot(x,iFx,'r+');hold on;plot(x,iFy,'og');

此外,我厌倦了使用具有循环条件的替代代码,但错误仍然存​​在,因为无法从sym转换为逻辑.

% clear all;clc

% a=0;b=2;n=3;h=(b-a)/n;ym=a:h:b;

% %

% X=[ 1/6, 7/6, 25/6,43/6]; % Data

% Y=[ 1/5, 2/5, 14/5,4/5];

% %

% f=@(x,ym) (1-exp(x-ym)/h);

% %

% syms x %double(subs(x))

% iX=cell(1,length(ym));iY=cell(1,length(ym)); % cell, iX{k} and iY{k}

% % iX=zeros(1,length(ym));iY=zeros(1,length(ym));

% for k=1:length(ym)

% % iX(k) = f(x,ym(k)).*X(k);

% % iY(k) = f(x,ym(k)).*Y(k);

% iX{k} = @(x,k) f(x,ym(k)).*X(k);

% iY{k} = @(x,k) f(x,ym(k)).*Y(k);

% iX(x,k);

% end

% whos

% x=ym;

% plot(x,iX{:},'r:');hold on;plot(x,iY{:},'b--');

拜托,我该怎么办呢?