Substitute for eval function

4 visualizzazioni (ultimi 30 giorni)
Ninad Pimpalkhare
Ninad Pimpalkhare il 9 Lug 2020
% load('DATA_FC');
% load('VARS');
%
% t=1;
% k=1;
% for j=1:1:13428
% for i=1:1:1001
% temp=[raw{k,1} '(i,t)=DATA_FC(i,j)'];
% % eval(temp);
% end
% if rem(t,36)==0
% k=k+1;
% t=1;
% else
% t=t+1;
% end
% end
I have data in DATA_FC --> which is of dimension 1001*13428
I have variables in VARS (373 variables, A1,A2....A373).
I want that these 373 variables each should contain the data 1001*36 dimension (data to be picked from DATA_FC)
Eval functions is very slow.
Can anyone please suggest a fast alternative code to this problem.

Risposta accettata

KSSV
KSSV il 9 Lug 2020
Modificato: KSSV il 9 Lug 2020
It is not adivsed to use eval. You can reshape your data into what you want. Check below:
DATA_FC = rand(1001,13428) ; % random data for demo
[r,c] = size(DATA_FC); % get dimensions
nvars = 373; % number of variables needed
A = reshape(DATA_FC,[r,c/nvars,nvars]); % reshape
Now you can access your required variables...A1 will be A(:,:,1), A10 will be A(:,:,10)..etc.
  1 Commento
Ninad Pimpalkhare
Ninad Pimpalkhare il 9 Lug 2020
Thank you that helped a lot. I had to only use eval function now to assign the particular variable name. Done in 1 min.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Variables in Help Center e File Exchange

Tag

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by