How do i add all the values which i get using eval function?

1 vue (au cours des 30 derniers jours)
DIJESH
DIJESH le 27 Mai 2014
Commenté : DIJESH le 27 Mai 2014
prompt = {'Enter the forces(kN): '};
title = 'Environmental forces';
answer = inputdlg(prompt,title);
f = str2num(answer{:});
for ii=1:numel(f)
eval(sprintf('f%d = %f\n',ii,f(ii)))
end
prompt1 = {'Enter the respective angles: '};
title1 = 'Angle w.r.t x-axis';
answer1 = inputdlg(prompt1, title1);
a = str2num(answer1{:});
for jj=1:numel(a)
eval(sprintf('a%d = %f\n',jj,a(jj)))
end
for jj=1:numel(a)
string='f(jj)*cos(jj)';
eval(string)
end
in this code i am getting several values for string. I have to add all those values. can anyone help?

Réponse acceptée

Jos (10584)
Jos (10584) le 27 Mai 2014
Avoid EVAL !!!
You do not want to store a series of related values in separate variables f1 = .. f2 = .. but rather in a single variable with multiple elements f(1) = .. f(2) = ..
Your codes is almost there. Just remove the evals ...
prompt = {'Enter the forces(kN): '};
title = 'Environmental forces';
answer = inputdlg(prompt,title);
f = str2num(answer{:});
prompt1 = {'Enter the respective angles: '};
title1 = 'Angle w.r.t x-axis';
answer1 = inputdlg(prompt1, title1);
a = str2num(answer1{:});
if numel(f) ~= numel(a)
error('The vectors should have the same number of elements') ;
else
sum=0 ;
for jj=1:numel(a)
sum = sum + f(jj)*cos(a(jj)) ;
end
% or use the power of matlab:
% sum = sum(f.*cos(a))
end
Lesson to be learned: avoid eval!

Plus de réponses (1)

rifat
rifat le 27 Mai 2014
prompt = {'Enter the forces(kN): '};
title = 'Environmental forces';
answer = inputdlg(prompt,title);
f = str2num(answer{:});
for ii=1:numel(f)
eval(sprintf('f%d = %f\n',ii,f(ii)))
end
prompt1 = {'Enter the respective angles: '};
title1 = 'Angle w.r.t x-axis';
answer1 = inputdlg(prompt1, title1);
a = str2num(answer1{:});
for jj=1:numel(a)
eval(sprintf('a%d = %f\n',jj,a(jj)))
end
sum=0;
for jj=1:numel(a)
string='f(jj)*cos(jj)';
sum=sum+eval(string);
end

Catégories

En savoir plus sur Interactive Control and Callbacks dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by