Substitute for eval function

1 visualización (últimos 30 días)
Ninad Pimpalkhare
Ninad Pimpalkhare el 9 de Jul. de 2020
Comentada: Ninad Pimpalkhare el 9 de Jul. de 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.

Respuesta aceptada

KSSV
KSSV el 9 de Jul. de 2020
Editada: KSSV el 9 de Jul. de 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 comentario
Ninad Pimpalkhare
Ninad Pimpalkhare el 9 de Jul. de 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.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Matrices and Arrays en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by