plotting selected lines from a matrix
Mostrar comentarios más antiguos
Hello! This was from a response last week from Sean de for plotting 9 2-D lines for a 3x3x4 matrix:
test = repmat(magic(3),[1 1 4]); %each vector into the third dimension will be the same (so we can verify accuracy)
test2 = reshape(permute(test,[3 2 1]),size(test,3),[]); %permute it and reshape it so that each column represents one vector into the third dimension
plot(test2) %plot it
I've been fiddling around with this code and was wondering: is there a way to print the data from each row on a separate graphs? So for this matrix have the output 3 charts with three lines each.
1 comentario
Matt Fig
el 21 de Jun. de 2011
I don't see how you can get 3 charts with separate lines each (9 plots total) by plotting the rows of a 4-by-9 matrix (test2). Did you mean to plot the columns instead?
Respuestas (2)
Sean de Wolski
el 21 de Jun. de 2011
doc subplot
Then use a FOR-loop to navigate through.
figure;
for ii = 1:3
subplot(3,1,ii)
hold on
plot(matrix((3*(ii-1)+1):(3*ii),:).')
end
EDIT per comments:
for ii = 1:3
figure
plot(matrix((3*(ii-1)+1):(3*ii),:)')
end
Doesn't produce three unique figures with three lines each?
6 comentarios
Donald
el 21 de Jun. de 2011
Sean de Wolski
el 21 de Jun. de 2011
Three different figures instead of subplots?
Sure:
for ii = 1:3
figure;
plot(what I have above)
end
Donald
el 21 de Jun. de 2011
Sean de Wolski
el 21 de Jun. de 2011
see edit.
Donald
el 21 de Jun. de 2011
Walter Roberson
el 21 de Jun. de 2011
for ii = 1:3
fig = figure;
axh = gca('Parent',fig);
plot(axh, matrix((3*(ii-1)+1):(3*ii),:).')
end
Categorías
Más información sobre Annotations en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!