- As mentioned in the question to get 3×3 tiledlayout, but in the code it is initialized for 5×5
- The main reason for second error is tiledlayout should be initialized outside the for loop
- The reason for first error might be data sent to function is not handled properly in for loop.
Add sets of graph onto tiledlayout
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I am using a nested for loop to try and create a 3-3 tiledlayout. In the outer for loop, i get the information and in the inner for-loop I am iterating through the information to create 3 plots.
The first error that I am getting is that I want to print 3 graphs in one row but it is only letting me print two.
The second error is that it resets the graphs everytime I go to the next iteration in the outerloop, Instead of keeping the graphs intact.
Here is my code. Please Help, Thank You!
function idek(xy_cell)
position = 1;
global num_drones
M_rows = num_drones;
%RUN LENGTH OF EXTRACTED CELL
for i = 1:length(xy_cell)
tiledlayout(5, 5);
ith_drone_xy = xy_cell{i};
x_loc = ith_drone_xy(:,1);
y_loc = ith_drone_xy(:,2);
for t = 1:length(x_loc)
x = x_loc(t);
y = y_loc(t);
clf
nexttile;
plot(x, y, 'go', 'LineWidth', 1, 'MarkerSize', 10)
hold on
plot(x_loc, y_loc, 'LineWidth', .5)
xlabel('x')
ylabel('y')
title(['Drone Trajectory at ', num2str(t), ' Seconds'])
nexttile;
plot(t, x, 'go', 'LineWidth', 1, 'MarkerSize', 10)
hold on
plot(x_loc, 'LineWidth', .5)
xlabel('Time')
ylabel('x-Location')
title(['Drone x-Location at ', num2str(t), ' Seconds'])
nexttile;
plot(t, y, 'go', 'LineWidth', 1, 'MarkerSize', 10)
hold on
plot(y_loc, 'LineWidth', .5)
xlabel('Time')
ylabel('y-Location')
title(['Drone y-Location at ', num2str(t), ' Seconds'])
% drawnow
% pause(0.3)
movieVector(t) = getframe;
end
hold('on')
nexttile;
end
0 Kommentare
Antworten (1)
Monisha Nalluru
am 12 Aug. 2020
The reason for errors obtained in above function
You can use something like below:
a={{[1,2,3,4],[5,6,7,8]},{[7,8,9,10],[11,12,13,14]}};
tiledlayout(2,2)
for i=1:numel(a)
ele=a{1,i};
for j=1:numel(ele)
newele=ele{1,j};
nexttile
plot(newele);
end
end
You can customize accordingly.
0 Kommentare
Siehe auch
Kategorien
Mehr zu Subplots finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!