如何在 matlab 中使用电子表格制作 3d 平面图

How can I make 3d plots of planes by using spreadsheet in matlab

pointA=[9.62579 15.7309 3.3291];
pointB=[13.546  25.6869 3.3291];
pointC=[23.502  21.7667 -3.3291];
pointD=[19.5818 11.8107 -3.3291];

points=[pointA' pointB' pointC' pointD'];
fill3(points(1,:),points(2,:),points(3,:),'r')
grid on
alpha(0.3)

这段代码将显示一个填充平面(还不能添加图片T.T)

现在我的问题来了。在电子表格上,我有数千个点的 x、y、z 坐标。 4 个连续的点形成一个平面,如图所示。我如何编写代码,使得每 4 个连续点,它就构成一个填充平面。 基本上,如果我有 400 个点,我希望代码绘制 100 个平面。

clear all, close all, clc
pointA=rand(99,1);
pointB=rand(99,1);
pointC=rand(99,1);
pointD=rand(99,1);
pointAmat = reshape(pointA,3,1,[]);
pointBmat = reshape(pointB,3,1,[]);
pointCmat = reshape(pointC,3,1,[]);
pointDmat = reshape(pointD,3,1,[]);

points=[pointAmat pointBmat pointCmat pointDmat];

for i = 1:size(points,3)
fill3(points(1,:,i),points(2,:,i),points(3,:,i),'r')
hold all
end
grid on
alpha(0.3)

希望对您有所帮助。

假设你的数据是一个矩阵,m = (400,3)

m = rand(400,3); for i = 1:length(m); m2 = m'; % Transpose end

创建一个 3-D 矩阵,其中 'j' 代表每组点:

m3=[];

%这不是每四个点循环一次的最优雅的方法,但它确实有效!

z = 0:(length(m2)/4); z1 = (z*4)+1; z1 = z1(:,1:length(z)-1); 
    for j = 1:length(z1);
        m3(:,:,j) = m2(:,z1(j):(z1(j)+3));
    end

'j' 现在总长度 = 100 - 表示飞机数量;

fill3(m3(1,:,1),m3(2,:,1),m3(3,:,1),'r'); 

% Cycle through planes-为每个平面制作一个新图形;

for j = 1:length(z1);
    fill3(m3(1,:,j),m3(2,:,j),m3(3,:,j),'r'); 
end