Load data and create loop

4 visualizzazioni (ultimi 30 giorni)
Grace Hillman
Grace Hillman il 4 Dic 2017
Modificato: Stephen23 il 4 Dic 2017
I have a data-set. I loaded the data file. There are four columns. I need to use a loop to create four subplots of the data. Each column in the dataset needs one subplot (vs. year, a variable I have already defined). I have put my code below, I have been getting an error: "Undefined variable "data_emission" or class "data_emission.mat"."
% code
load 'data_emission.mat'
x=data_emission.mat{1};
y=data_emission.mat{2};
w=data_emission.mat{3};
z=data_emission.mat{4};
for i = x;y;w;z;
figure
plot(year, i,'--*')
g(i)=subplot(i,1,1);
xlabel('Year','FontSize',12,'FontName','Helvetica')
ylabel('emission (MMT CO2)','FontSize',12,'FontName','Helvetica')
legend(i,'Location','NorthWest','FontSize',12,'FontName','Helvetica')
end
end
  1 Commento
Nicolas Schmit
Nicolas Schmit il 4 Dic 2017
It seems that you are trying to access the .mat file itself instead of accessing to the variable stored in the .mat file. Could you please show the contents of the .mat file?

Accedi per commentare.

Risposte (1)

Stephen23
Stephen23 il 4 Dic 2017
Modificato: Stephen23 il 4 Dic 2017
The problem is caused by incorrect usage of command syntax (the single quotes are interpreted literally). In any case, using command syntax with load is a bad idea, and you would be much better off calling proper function syntax and loading into an output variable:
S = load('data_emission.mat');
x = S.data_emission.mat{1};
y = S.data_emission.mat{2};
... etc
Summary: command syntax is fun for playing around in the command line. Do not use it for any code that you want to be robust and reliable. Also you should always load into an output variable.

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by