gpt4 book ai didi

matlab - 在 MATLAB 中按值拆分矩阵

转载 作者:太空宇宙 更新时间:2023-11-03 20:01:05 26 4
gpt4 key购买 nike

我想知道是否有一个 MATLAB 解决方案可以将矩阵拆分为如下子矩阵:

矩阵是:

A =
16 2 3
5 11 10
9 7 6
4 14 15
5 1 3

我想将以 5 开头的行放入另一个矩阵,将以 16 开头的行放入另一个矩阵,等等。

有这方面的功能还是我应该使用 if/for 方法?

最佳答案

这是一个使用函数 SORTROWS 的解决方案, UNIQUE , ACCUMARRAY , 和 MAT2CELL创建一个元胞数组,每个元胞存储一组在第一列中具有相同值的行:

>> sortedA = sortrows(A,1);  %# Sort the rows by the first column
>> [~,~,uniqueIndex] = unique(sortedA(:,1)); %# Find indices of unique values
%# in the first column
>> cellA = mat2cell(sortedA,... %# Break matrix up by rows
accumarray(uniqueIndex(:),1),3); %# into a cell array
>> cellA{:} %# Display the contents of the cells

ans =

4 14 15

ans =

5 11 10
5 1 3

ans =

9 7 6

ans =

16 2 3

关于matlab - 在 MATLAB 中按值拆分矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5641111/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com