Matlab:按行排序

标签 matlab sorting

为什么会这样

t = magic(4);
k = 1:4;
tt(k,:) = sort(t(k,:)) % 

对每一列内的值进行排序(交换行和列什么都不做), 但是这个

t = magic(4);
for k = 1:4
  tt(k,:) = sort(t(k,:))
end

按预期对行内的值进行排序?

最佳答案

在下面

t = magic(4);
k = 1:4;
tt(k,:) = sort(t(k,:)) % 

t(k,:) 是一个 4x4 矩阵。因此,sort 将应用其默认的 1-dim 排序,即 w.r.t.行。请注意,您可以告诉 sort 沿二维排序。即,w.r.t.列,由

tt(k,:) = sort(t(k,:),2)

在你的另一种情况下,k 是一个整数,t(k,:) 是一个 1x4 行向量;因此,将执行 w.r.t. 排序。列。

t = magic(4);
for k = 1:4
  tt(k,:) = sort(t(k,:))
end

最后,请注意@Luis Mendo:在下面的评论中的说明,我将其包含在此处以防评论被删除:

Just a clarification: by default sort (like most Matlab functions), doesn't work along the first dim, but along the first non-singleton dim. The distinction is important if the input matrix can be a row vector.

关于Matlab:按行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35718697/

相关文章:

python - 如何让我的代码找到整个列表中最大的字谜组?

c++ - 为什么这个结构排序会使我的程序崩溃?

matlab - 从视频文件中提取音频

machine-learning - 如何在 MATLAB 中高效计算神经网络应用中训练/测试集的 MAPE?

function - 通缉 : Matlab example of an anonymous function returning more than 1 output

java - 与 Java 相比,Python 中的 Stooge Sort 指数慢?

javascript - 具有嵌套空值的 Lodash/JS orderBy

matlab - 如何纠正 "Valid indices for ' 变量'在 PARFOR 循环中受到限制”matlab 中的错误

matlab - 使用 ./Matrix 维度时出错必须一致

java - Java Arraylist 中的选择排序