How to Plot Multiple variables ?(not multi-plot)

조회 수: 6 (최근 30일)
puru
puru 2011년 6월 29일
I have generated 1000's of variables using Eval,I Want to plot a graph.Let's say below given are the different variables
t_1
t_2
t_3
.
.
t_n
I want to plot these against some other data. I used following to generate graph.
for i=1:1000
eval(sprintf('plot(t_%d)',i))
end
I could not able to plot the graph, it displays only a empty graph.Can anyone suggest some ideas please.

답변 (4개)

Paulo Silva
Paulo Silva 2011년 6월 29일
Bad idea to do it that way but I think you are missing
axes
hold on
before the for loop

Oleg Komarov
Oleg Komarov 2011년 6월 29일
Very bad practice and as a proof you already have problems for such a simple task. Use dynamic fields in structures or cell arrays instead. Read carefully faq 4.6

Matt Fig
Matt Fig 2011년 6월 29일
As others have said, this kind of thing is the very reason why you should not make such variables using EVAL in the first place. You will have such problems every time you need to use these variables. Your code will be harder to debug and slower too, than if you had done the work with cell arrays or structures.

Fangjun Jiang
Fangjun Jiang 2011년 6월 30일
The strangest way of using plot() I have even seen! Even plot(eval('t_1')) is better in my opinion.
With that said, assume your t_1, t_2, etc. are already there, you can convert it to cell array and then plot.
clear all;
t_1=1:5;
t_2=5:-1:0;
t_3=rand(6,1);
save;
Data=load;
CellData=struct2cell(Data);
figure;
hold on;
cellfun(@plot,CellData);

카테고리

Help CenterFile Exchange에서 Variables에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by