【发布时间】:2017-06-16 07:15:23
【问题描述】:
假设我有这个向量 A:
A=[2
92
91
91
91
92
9
92
-1
91];
我想编写一个代码,将最小的条目重命名为 1,将下一个最小的条目重命名为 2,依此类推。所以,我希望输出是:
B=[2
5
4
4
4
5
3
5
1
4];
如何使用简短而高效的代码来做到这一点?我能写的代码是一种“一一检查重命名”的代码,效率极低。
U=unique(A);
for a=1:size(U,1)
for b=1:size(A,1)
if A(b,1)==U(a,1)
B(b,1)=a;
end
end
end
是否可以在不使用 for 循环的情况下编写一种,或者另一种高效的方法?
【问题讨论】: