I have trouble understanding the command.
Mostrar comentarios más antiguos
I'm having trouble understanding what the command below does, I'd like to know if anyone knows what it does.
for i=1:nset
tty=y(i,:);
index=find(tty>=0);
tx=x(i,index,:);
ty=tty(index);
tpar=mpar(:,i);
command=['[esty seout]=',fun,'(tpar,tx);']; //
eval(command);
m=length(esty);
predy(i,1:m)=esty;
if(linear == 1);
errory=errory+((esty-ty)*(esty-ty)');
else
findex=find(esty<=0);
esty(findex)=ones(size(findex))/1000000000;
error=20*log10(esty)-20*log10(ty);
errory = errory+error*error';
end
end
I don't know what you are doing with the two sentences in this programme, does anyone know?
command=['[esty seout]=',fun,'(tpar,tx);'];
eval(command);
2 comentarios
Kaminosono Shougo
el 17 de Oct. de 2022
Do not learn from such badly-written code.
If the code's author had read the Tips section of the EVAL documentation, they would know it is not recommended to include the output arguments in the EVAL call, only the RHS. They could (should) have done that.
And then if they had done a bit more thinking and reading on the topic, they would have known to replace the EVAL with STR2FUNC (which defines a function handle that can be repeatedly called without the performance hit of repeated EVAL calls).
Caecus caeco dux. Sigh.
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre Variables en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!