# How can I call a value in side the a function which is already evaluated.

4 views (last 30 days)
Chaudhary P Patel on 26 Sep 2022
Commented: Walter Roberson on 27 Sep 2022
%% knt i calculated here.
nf=max(elem(:,4));
maxfl=max(elf(:,1));
for flno = 1:1:maxfl
for i=elf(1,1)
for j=1:1:nf
p=CGx(j)-CGx(i);
au=[1,0,0;0,1,p;0,0,1];
bu=(au)';
kse=eval(['KSE',num2str(flno),'l']);
k1=kse(1:nodof,1:nodof);
eval(['Ktts',num2str(flno),'l','=[k1,-k1*au;-bu*k1,bu*k1*au]']); %Transformed Stiffness matrix of each floor (6x6)
end
end
end
%% I have to call the knt inside the loop, how can i call please suggest me.
function [t,k_hat, R, keyp, key,Keyp,Key, delu, k_T, delF_hat, deludot, u0, udot0, uddot0] = NewmarkNon( t,Ug, delF, dt, u_t, u_c,F1, KGf, C, MGf, Rt, Rc, R, gamma, beta, key, k_T,u,udot,uddot)
knt=eval(['Ktts',num2str(n),'l']);
end
Chaudhary P Patel on 27 Sep 2022
Thank you so much sir.

Bruno Luong on 27 Sep 2022
If you want to retrieve value of a variable from the parent workspace inside a function without passing it as argument onstead of normal eval do this
knt = evalin('caller','Ktts',num2str(n),'l'])
Walter Roberson on 27 Sep 2022
Postponing fixing your code by locking in using a hack like this is just going to result in it taking even longer to fix your code later.

Walter Roberson on 26 Sep 2022
It is not possible to do what you want to do using eval(). You will need to rewrite your code.
##### 2 CommentsShowHide 1 older comment
Walter Roberson on 26 Sep 2022

### Categories

Find more on Number Theory in Help Center and File Exchange

R2018a

### Community Treasure Hunt

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

Start Hunting!

Translated by