matlab中,如何确定向量中第二大数的位置
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/12 13:59:41
matlab中,如何确定向量中第二大数的位置
如 a=[100,1,1,1,2,2,2,1,4,1,2,5,99,0,0,1,1,1,2];
怎样想确定99的位置?
最好用的find函数
这个是我自己编的:
[y,x]=sort(a);
y(end-1) %为第二大数
x(end-1) %为第二大数的位置
但是,如果数据量是225000,排序本身就会浪费时间和内存,并且还新添变量y,x;
很浪费,
求更好的的方法~
如 a=[100,1,1,1,2,2,2,1,4,1,2,5,99,0,0,1,1,1,2];
怎样想确定99的位置?
最好用的find函数
这个是我自己编的:
[y,x]=sort(a);
y(end-1) %为第二大数
x(end-1) %为第二大数的位置
但是,如果数据量是225000,排序本身就会浪费时间和内存,并且还新添变量y,x;
很浪费,
求更好的的方法~
%将以下程序直接考入运行即可
a=[100,1,1,1,2,2,2,1,4,1,2,5,99,0,0,1,1,1,2];%用来测试程序的向量
[max_value max_position]=max(a);%先得到最大值的数值和位置
a(max_position)=min(a);
%将最大值的数值用向量最小值替代,这样第二大的值就变成了最大值,且所在位置不变
[max_value_2 max_position_2]=max(a)%这时取出的最大值就是我们所需要的第二大值了
a(max_position)=max_value;%记得将刚才的最大值复原,保持向量的完整性
%本程序不用sort函数,数据量很大时速度也非常快
%运行过程只产生4个中间变量,几乎不占用空间,您不妨试试
a=[100,1,1,1,2,2,2,1,4,1,2,5,99,0,0,1,1,1,2];%用来测试程序的向量
[max_value max_position]=max(a);%先得到最大值的数值和位置
a(max_position)=min(a);
%将最大值的数值用向量最小值替代,这样第二大的值就变成了最大值,且所在位置不变
[max_value_2 max_position_2]=max(a)%这时取出的最大值就是我们所需要的第二大值了
a(max_position)=max_value;%记得将刚才的最大值复原,保持向量的完整性
%本程序不用sort函数,数据量很大时速度也非常快
%运行过程只产生4个中间变量,几乎不占用空间,您不妨试试
matlab中,如何确定向量中第二大数的位置
matlab中如何颠倒行向量中元素的位置
matlab中如何找出向量的0元素位置
matlab求一行向量中10个最小值的位置
MATLAB中如何确定函数中最大值的坐标
matlab中如何找到一个矩阵中第二大的数值的位置 a=[0.6149 1.0519 0.7874 0.9780] 如何
Matlab中矩阵中元素的位置如何改变?
如何在matlab中确定多项式拟合的阶数
matlab中如何确定方程系数
matlab中如何求矩阵和向量的增广阵
solidworks中如何确定椭圆的两焦点位置
matlab中由一维数组X,Y绘制的图像,如何确定图中某一点对应元素在数组中的位置