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