求助,matlab怎样提取新数组里元素的原下标,程序纠错

clearallclcrate1990=5*rand(1,30);rate2005=5*rand(1,30);rate2007=5*rand(1,30);rate2008... clear all
clc
rate1990=5*rand(1,30);
rate2005=5*rand(1,30);
rate2007=5*rand(1,30);
rate2008=5*rand(1,30);
A=[rate1990;rate2005;rate2007;rate2008];
%完成数组A的创建工作
Lb = [1990,2005,2007,2008];
for i = 1:4
B = A(i,:);
eval(['rate',num2str(Lb(i)),'test = B(B<=4.6);']);
end
%%提取新数组中元素的原数组下标
[rate1990test,rate1990test_index]=sort(rate1990test);
[rate2005test,rate2005test_index]=sort(rate2005test);
[rate2007test,rate2007test_index]=sort(rate2007test);
[rate2008test,rate2008test_index]=sort(rate2008test);
我把sort里的rate1990test改成rate1990时,rate1990test就变了,变回提取之前的rate1990了,
要是按上面写的运行,得到的下标个数对,但是不是从小到大排列的,而且上一步提取出来的rate1990test也乱套了,为什么啊,怎么改才好,请高手指教,非常非常感谢!!!!!!
展开
 我来答
tianxiawulang
2012-08-13 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2835万
展开全部
没搞明白你到底想要达到什么效果?

你如果把sort里的rate1990test改成rate1990,返回参数是rate1990test,当然它会变,但不可能和rate1990相同,而是排过序的rate1990。

按照你现在的写法,rate1990test是从小到大排列的,尽管程序写的不太好,但可以用啊
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式