matlab - 在 Matlab 中对列进行排序

标签 matlab

我使用 textscan 导入了 2 列数据。数据如下所示,其中 UundetectDdetect

mydata=

.51 U
.57 D
.48 U
.47 D

 my data = [4x1 double]    [4x1 char]

我想按第一列对数据进行排序,所以数据看起来像这样

.47  D
.48  U
.51  U    
.57  D

我想保留单元格结构,以便以下分配逻辑值的命令仍然适用:

c = zeros(size(mydata,1),1); % preallocate empty matrix 

c = mydata{2} == 'U';
for i = 1:size(mydata,1)
      curValue = mydata{i,2};
      data{i,3} =  ~isempty(curValue) && ischar(curValue) && strcmp(curValue ,'U');
end

我阅读了有关 sortrows 的内容,但该函数用于对仅包含数字的矩阵进行排序。

有没有人有对数字和字符混合的数组进行排序的解决方案。

最佳答案

您可以 SORT通过一个向量并将排序索引应用于另一个向量。

[mydata{1},idx] = sort(mydata{1});
mydata{2} =  mydata{2}(idx);

关于matlab - 在 Matlab 中对列进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8620185/

相关文章:

matlab - Inputdlg 未检测到换行符

bash - bash 中的 matlab 批处理并行化

arrays - 在给定矩阵的每一行中找到最后一个非零元素的索引?

Matlab原生消除xy点的方法

image - 图像的零填充傅里叶

matlab - MATLAB中生成有限几何级数的常用方法

matlab - 多项式拟合 matlab 对系数有一些限制

MATLAB - 将向量转换为单位向量

matlab - Matlab 中的 Char(非 ascii)

c - Matlab C 嵌入式编码器代码