Matlab 按列对矩阵行进行分组,并绘制3行描述的路径

Matlab 按列对矩阵行进行分组,并绘制3行描述的路径,matlab,matrix,plot,3d,matlab-figure,Matlab,Matrix,Plot,3d,Matlab Figure,我有四列的矩阵path:第一列有一个数字,表示行所属的path,其他三列是维度。我想打印路径。我用以下方法来做: for p = min(paths(1,:)):max(paths(1,:)) path = paths(paths(:,1)==p,:); plot3(path(:,2),path(:,3),path(:,4),'Color','k'); end 考虑到一些函数式编程,我想知道:如何按第一列对矩阵路径进行分组并打印每个组的路径?您非常接近它。首先,您需要循环遍历第

我有四列的矩阵
path
:第一列有一个数字,表示行所属的
path
,其他三列是维度。我想打印
路径
。我用以下方法来做:

for p = min(paths(1,:)):max(paths(1,:))
    path = paths(paths(:,1)==p,:);
    plot3(path(:,2),path(:,3),path(:,4),'Color','k');
end

考虑到一些函数式编程,我想知道:如何按第一列对矩阵
路径进行分组并打印每个组的路径?

您非常接近它。首先,您需要循环遍历第一列中的值(而不是问题中的行),并创建一个逻辑索引,以便只获取相关路径并绘制它们(使用
保持
):

以下是一个输出示例:


你离它很近。首先,您需要循环遍历第一列中的值(而不是问题中的行),并创建一个逻辑索引,以便只获取相关路径并绘制它们(使用
保持
):

以下是一个输出示例:

paths = [randi(4,50,1) rand(50,3)]; % example data
for p = unique(paths(:,1)).'
  path = paths(:,1)==p; % a logical index for path p
  plot3(paths(path,2),paths(path,3),paths(path,4));
  hold on % to plot all the paths on the same axes
end
hold off % stop plotting on this axes