Matlab 仅通过第一行对3D矩阵进行排序
我很难按照我想要的行对3D矩阵进行排序,但仍然让其他两列与排序后的行匹配 ex)分拣前:Matlab 仅通过第一行对3D矩阵进行排序,matlab,sorting,matrix,Matlab,Sorting,Matrix,我很难按照我想要的行对3D矩阵进行排序,但仍然让其他两列与排序后的行匹配 ex)分拣前: 5 4 1 4 6 3 9 6 5 排序后: 1 4 5 3 6 4 5 6 9 因此,只有第一行按升序排序,其他两行只保留在各自的列中 我尝试过排序(矩阵(1,:,:),但这似乎可以对所有三行进行排序。我猜有一些matlab函数可以做到这一点,但我没有发现任何东西。谢谢您可以将输出参数与排序一起使用,以便根据需要对矩阵进行重新排序,并建立索引 例如:
5 4 1
4 6 3
9 6 5
排序后:
1 4 5
3 6 4
5 6 9
因此,只有第一行按升序排序,其他两行只保留在各自的列中
我尝试过排序(矩阵(1,:,:),但这似乎可以对所有三行进行排序。我猜有一些matlab函数可以做到这一点,但我没有发现任何东西。谢谢您可以将输出参数与
排序
一起使用,以便根据需要对矩阵进行重新排序,并建立索引
例如:
clear
clc
a = [5 4 1
4 6 3
9 6 5]
%// Select row of interest
row = 1;
[values,indices] = sort(a(row,:)) %// Since you have a 3D matrix use "a(row,:,:)"
b = a(:,indices) %// In 3D use "b = a(:,indices,:)"
输出:
b =
1 4 5
3 6 4
5 6 9
您可以将输出参数与
sort
一起使用,以便根据需要对矩阵进行重新排序,并建立索引
例如:
clear
clc
a = [5 4 1
4 6 3
9 6 5]
%// Select row of interest
row = 1;
[values,indices] = sort(a(row,:)) %// Since you have a 3D matrix use "a(row,:,:)"
b = a(:,indices) %// In 3D use "b = a(:,indices,:)"
输出:
b =
1 4 5
3 6 4
5 6 9
您可以将输出参数与
sort
一起使用,以便根据需要对矩阵进行重新排序,并建立索引
例如:
clear
clc
a = [5 4 1
4 6 3
9 6 5]
%// Select row of interest
row = 1;
[values,indices] = sort(a(row,:)) %// Since you have a 3D matrix use "a(row,:,:)"
b = a(:,indices) %// In 3D use "b = a(:,indices,:)"
输出:
b =
1 4 5
3 6 4
5 6 9
您可以将输出参数与
sort
一起使用,以便根据需要对矩阵进行重新排序,并建立索引
例如:
clear
clc
a = [5 4 1
4 6 3
9 6 5]
%// Select row of interest
row = 1;
[values,indices] = sort(a(row,:)) %// Since you have a 3D matrix use "a(row,:,:)"
b = a(:,indices) %// In 3D use "b = a(:,indices,:)"
输出:
b =
1 4 5
3 6 4
5 6 9
另一种方法是使用
另一种方法是使用
另一种方法是使用
另一种方法是使用
我只是想澄清一下,这里是一个2D矩阵。我的错误是,我处理的是一个尺寸为100x100x3的彩色图像。3代表红色、绿色和蓝色。同样的问题好吧,那么我下面的回答应该会对你有所帮助。我会编辑的。太棒了,谢谢。太好了,不客气!我只是想澄清一下,这里是一个2D矩阵。我的错误是,我处理的是一个尺寸为100x100x3的彩色图像。3代表红色、绿色和蓝色。同样的问题好吧,那么我下面的回答应该会对你有所帮助。我会编辑的。太棒了,谢谢。太好了,不客气!我只是想澄清一下,这里是一个2D矩阵。我的错误是,我处理的是一个尺寸为100x100x3的彩色图像。3代表红色、绿色和蓝色。同样的问题好吧,那么我下面的回答应该会对你有所帮助。我会编辑的。太棒了,谢谢。太好了,不客气!我只是想澄清一下,这里是一个2D矩阵。我的错误是,我处理的是一个尺寸为100x100x3的彩色图像。3代表红色、绿色和蓝色。同样的问题好吧,那么我下面的回答应该会对你有所帮助。我会编辑的。太棒了,谢谢。太好了,不客气!快速问题,在B= A(:,索引,:)为什么索引放置在中间?因为索引对应于列,这是第二维:快速问题,在B= A(:,索引,:)为什么索引放置在中间?因为索引对应于列,这是第二维:)快速问题,在B= A(:,索引,:)为什么索引放在中间?因为索引对应于列,这是第二维:快速问题,在B= A(:,索引,:)为什么索引放在中间?因为索引对应于列,这是第二维:)这是我的方法。too@LuisMendo谢谢这是对我的一个极大的赞美:)这将是我的方法too@LuisMendo谢谢这是对我的一个极大的赞美:)这将是我的方法too@LuisMendo谢谢这是对我的一个极大的赞美:)这将是我的方法too@LuisMendo谢谢这是对我的一个极大的赞美:)