Varying variable name within one workspace
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
charlotte wilson
le 13 Mar 2017
Réponse apportée : Walter Roberson
le 13 Mar 2017
folder = '1.5';
load comp.mat
figure
L1 = L;
J1 = J;
clearvars -except L1 J1
plot(L1,J1,'bo')
hold
folder = '1.8';
load comp.mat
L2=L;
J2=J;
clearvars -except L1 J1 L2 J2
plot(L2,J2,'b*')
From the code above I am trying to load a group of variable with all the same name and plot them all on one graph. I have been trying to rename the variable after they load but as soon as I load a new file it replaces the previous variable. Is there anyway I could rename the variables as they are imported and stop them from being replaced by the following variable?
Also if I could maybe save the variable with the Pt in the name EG: L_'PT' which varied dependent on input. This could solve the previous problem
load workspace.mat
prompt = 'What is the target frequency? '; %asks for values to input
Pt = input(prompt);
L = Pt/frequency;
BF = 1.88;
J = frequency/BF;
clearvars -except L J
save('comp');
0 commentaires
Réponse acceptée
Walter Roberson
le 13 Mar 2017
first = load('comp.mat', 'L', 'J');
plot(first.L, first.J, 'bo');
second = load('comp.mat', 'L', 'J');
plot(second.L, second.J, 'b*');
More generally...
dinfo = dir();
dinfo(~[dinfo.isdir]) = []; %zap non-directories
dinfo( ismember({dinfo.name}, {'.', '..'}) ) = []; %zap . and ..
nfold = length(dinfo);
vars = cell(nfold,1);
folders = {dinfo.name};
for K = 1 : nfold
thisdir = folders{K};
vars{K} = load( fullfile(thisdir, 'comp.mat'), 'L', 'J' );
plothandles(K) = plot(vars{K}.L, vars{K}.J, 'bo');
hold
end
legend(plothandles, folders)
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Debugging and Analysis 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!