MATLAB Answers

Can I save different variables inside of a for loop?

조회 수: 2(최근 30일)
Hello everyone.
I am working with a code in which 50 variables have to be saved. Each of them is a row of a matrix. I am trying to implement this as
for i=1:50
element_of_the_ensemble=i;%de 1 a 50
windX_in_the_node=vientoX_vector(:,element_of_the_ensemble);
windY_in_the_node=vientoY_vector(:,element_of_the_ensemble);
matriz_a_enviarX_1_of_50=zeros(size(windX_in_the_node,1), 3);
matriz_a_enviarX_1_of_50(:,1:2)=positions_reducida;
matriz_a_enviarY_1_of_50=zeros(size(windY_in_the_node,1), 3);
matriz_a_enviarY_1_of_50(:,1:2)=positions_reducida;
matriz_a_enviarX_1_of_50(:,3)=windX_in_the_node;
matriz_a_enviarY_1_of_50(:,3)=windY_in_the_node;
save('Xdata_'+i+'_of_50', 'matriz_a_enviarX_1_of_50')
save('Ydata_'+i+'_of_50', 'matriz_a_enviarY_1_of_50')
end
I have based this attempt in this other question. Unfortunately, I obtain an error.
Error using save
Must be a text scalar.
Error in read_data (line 619)
save('Xdata_'+i+'_of_50', 'matriz_a_enviarX_1_of_50')
So, it seems that my idea doesn't work.
Can someone please tell me if I can really automate this process?
Best regards.
Jaime.

채택된 답변

Scott MacKenzie
Scott MacKenzie 2021년 8월 10일
편집: Scott MacKenzie 2021년 8월 10일
Create the desired name of the file as a string or character variable, then use that variable with the save command. For example,
filename = sprintf('Xdata_%d_of_50', i);
save(filename, 'matriz_a_enviarX_1_of_50')
  댓글 수: 1
Jaime De La Mota Sanchis
Jaime De La Mota Sanchis 2021년 8월 10일
Thank you very much. This does it perfectly

댓글을 달려면 로그인하십시오.

추가 답변(1개)

Andreas Mittnacht
Andreas Mittnacht 2021년 8월 10일
Hi Jaime,
  1. for better performance do calculation without a loop
  2. to save data, use
save('Xdata_%d_of_50', i 'matriz_a_enviarX_1_of_50')
  댓글 수: 1
Jaime De La Mota Sanchis
Jaime De La Mota Sanchis 2021년 8월 10일
Thanks for the answer. However, if I implement it I obtain the following error:
Error using save
Must be a text scalar.
Error in read_data (line 619)
save('Xdata_%d_of_50', i, 'matriz_a_enviarX_1_of_50')
I have tested if I need another comma after the i, but the error persists.

댓글을 달려면 로그인하십시오.

제품


릴리스

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by