display multiple 3D figures with plot3
3 views (last 30 days)
Show older comments
Hi. I have some 3D figures that I would like to plot within a single graph using plot3.
I started with this code:
NM=10;
STEP=1;
color='rb';
iter=0;
for i=1:STEP:NM
nomefile=sprintf('C:\\Users\\Alberto\\Downloads\\object_%d.txt',i);
objAA=load(nomefile);
object(:,:,i)=objAA;
fg=sprintf('%s.',color(i));
figure(1)
plot3(object(:,1,i),object(:,2,i),object(:,3,i),fg)
hold on
end
But it gives me the following error:
Unable to perform assignment because the size of the left side is 29520-by-3 and the size of the right side is
43422-by-3.
Error in ...... (line ..)
object(:,:,i)=objAA;
Do you have to have the two 3D figures with the same nodes?
0 Comments
Accepted Answer
Star Strider
on 6 Dec 2022
Try something like this —
a = randi(9, 10, 3);
writematrix(a,'Test1.txt');
b = randi(9, 15, 3);
writematrix(b,'Test2.txt');
figure
hold on
for i = 1:2
object{i} = load(sprintf('Test%d.txt',i));
plot3(object{i}(:,1), object{i}(:,2), object{i}(:,3), 'DisplayName',sprintf('Test%d.txt',i))
end
hold off
grid on
legend('Location','best')
Make appropriate changes to get the desired results.
.
6 Comments
Star Strider
on 6 Dec 2022
Setting the individual DisplayName' colour doesn’t appear to be possible. I thought that the 'DisplayName' was a text object, and in that instance, it would be possible to change the text colours individually. It is not. It just appears to be a string array or character vector array, with no specific properties that can be set. It is possible to change the colours of the strings in the legend object, however not individually. They all have to be set to the same colour.
The dots however can be coloured specifically, and this code uses the ‘color’ vector to do that —
color='rb';
a = randi(9, 10, 3);
writematrix(a,'test_1.txt');
b = randi(9, 15, 3);
writematrix(b,'test_2.txt');
figure
hold on
for i = 1:2
object{i} = load(sprintf('test_%d.txt',i));
plot3(object{i}(:,1), object{i}(:,2), object{i}(:,3), '.', 'MarkerSize',15, 'DisplayName',sprintf('test\\_%d.txt',i), 'Color',color(i) )
end
hold off
grid on
axis('padded')
legend('Location','best')
That is likely the best it’s possible to do with respect to the colours.
.
More Answers (0)
See Also
Categories
Find more on Large Files and Big Data in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!