Can I save different variables inside of a for loop?

23 views (last 30 days)
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
matriz_a_enviarX_1_of_50=zeros(size(windX_in_the_node,1), 3);
matriz_a_enviarY_1_of_50=zeros(size(windY_in_the_node,1), 3);
save('Xdata_'+i+'_of_50', 'matriz_a_enviarX_1_of_50')
save('Ydata_'+i+'_of_50', 'matriz_a_enviarY_1_of_50')
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.

Accepted Answer

Scott MacKenzie
Scott MacKenzie on 10 Aug 2021
Edited: Scott MacKenzie on 10 Aug 2021
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')

More Answers (1)

Andreas Mittnacht
Andreas Mittnacht on 10 Aug 2021
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 Comment
Jaime De La Mota Sanchis
Jaime De La Mota Sanchis on 10 Aug 2021
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.

Sign in to comment.




Community Treasure Hunt

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

Start Hunting!

Translated by