save two variables using num2str

5 vues (au cours des 30 derniers jours)
Ham Man
Ham Man le 11 Juil 2022
Commenté : Stephen23 le 12 Juil 2022
I want to save two variables using num2str, but I get error. what is wrong with this?
x1=1;
y1=2;
ty_c=1;
pathdatasave = (['D:\testa\ty' num2str(ty_c) '\']);
save([pathdatasave 'test_x' num2str(x1) '_y' num2str(y1) '.mat'],['varx' num2str(x1) ,'vary' num2str(y1)]);
  4 commentaires
Ham Man
Ham Man le 11 Juil 2022
Thanks for the time

Connectez-vous pour commenter.

Réponses (1)

Stephen23
Stephen23 le 11 Juil 2022
Modifié(e) : Stephen23 le 12 Juil 2022
"what is wrong with this?"
  1. Forcing meta-data (pseudo-indices) into variable names, thus making your code slow and complex.
  2. Forcing code into one line, when clarity is actually more important (as this question demonstrates).
  3. Two variable names must be supplied as two inputs to SAVE (not concatenated together as you are doing):
x1=1;
y1=2;
varx1 = 33;
vary2 = 444;
P = '.';
F = fullfile(P,sprintf('test_x%d_y%d.mat',x1,y1));
N1 = sprintf('varx%d',x1);
N2 = sprintf('vary%d',y1);
save(F,N1,N2);
% ^^ ^^ two variable names == two inputs, not one like you did!
Checking:
whos -file test_x1_y2.mat
Name Size Bytes Class Attributes varx1 1x1 8 double vary2 1x1 8 double
So, everything works exactly as documented and expected.
  1 commentaire
Ham Man
Ham Man le 11 Juil 2022
Thank you

Connectez-vous pour commenter.

Catégories

En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by