1
a=[1 2 3 4
5 6 7 8
8 7 6 5
4 3 2 1]
for i=(1:4)
b=(a(i,:));
c=sort(b,2)
end
请,我怎样才能获得这个迭代在单个阵列中的结果(4×4),而不是让C的结果=排序(B, 2)分别为每个循环。我怎么把结果从一个迭代到一个数组在MATLAB
a=[1 2 3 4
5 6 7 8
8 7 6 5
4 3 2 1]
for i=(1:4)
b=(a(i,:));
c=sort(b,2)
end
请,我怎样才能获得这个迭代在单个阵列中的结果(4×4),而不是让C的结果=排序(B, 2)分别为每个循环。我怎么把结果从一个迭代到一个数组在MATLAB
你根本不需要使用循环!您正在尝试对每一行中的列进行排序。这可以通过向sort
提供可选参数来实现。
c=sort(a,2);
c=
1 2 3 4
5 6 7 8
5 6 7 8
1 2 3 4
应该给你你需要的东西。参数2
告诉sort
按列排序a
。如果你想按行排序,你会使用c=sort(a,1)
对不起,我只使用这个示例代码作为说明。我实际上拥有的是比这更复杂的,'我认为'它必须处于循环中。我的问题仍然是如何在1000次迭代后将结果放入数组中? – godson 2011-03-29 23:59:01
好吧,如果你必须使用一个循环,那么通过'c = zeros(size(a));'将'c'预先分配给'a'的大小。然后在循环中填入'c'的每一行,如下所示:'c(i,:)= sort(b,2);' – abcd 2011-03-30 00:04:56
好的,非常感谢。 – godson 2011-03-30 19:03:11