Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2009-04-24, 17:50   #1
angie
初级会员
 
注册日期: 2009-04-24
帖子: 3
声望力: 0
angie 正向着好的方向发展
问题 如何求一个矩阵中最大的10个元素值及其坐标?

有一个矩阵X(m,n),
想找到里面最大的元素值及坐标,
并要求X保持不变.
如何实现?
谢谢
angie 当前离线   回复时引用此帖
旧 2009-04-24, 18:31   #2
mathjiang
高级会员
 
注册日期: 2008-01-02
帖子: 247
声望力: 22
mathjiang 正向着好的方向发展
默认 回复: 如何求一个矩阵中最大的10个元素值及其坐标?

[m,n]=size(X);
v=sort(reshape(1,m*n),'descend');
v=v(1:10);%X中前十个最大的.
idx=[];
for i=1:10
idx=[idx; find(X==v(i))];
end
%idx就是X中前十个最大值的位置(依次的).
mathjiang 当前离线   回复时引用此帖
旧 2009-04-24, 18:39   #3
mathjiang
高级会员
 
注册日期: 2008-01-02
帖子: 247
声望力: 22
mathjiang 正向着好的方向发展
默认 回复: 如何求一个矩阵中最大的10个元素值及其坐标?

或者:
[m,n]=size(X);
v=sort(reshape(1,m*n),'descend');
v=v(1:10);%X中前十个最大的.
[tf idx]=ismember(X,v)
%idx就是X中前十个最大值的位置(依次的).
mathjiang 当前离线   回复时引用此帖
旧 2009-04-25, 11:10   #4
angie
初级会员
 
注册日期: 2009-04-24
帖子: 3
声望力: 0
angie 正向着好的方向发展
问题 回复: 如何求一个矩阵中最大的10个元素值及其坐标?

试了一下, 好像不行,原因如下:
1. reshape 好像不能用reshape(X,m*n),只能用(X,m,n),这样就只能对列sort,因此结果是从前面列往后取,没有遍及整个矩阵X
2.位置没有按矩阵中的行列坐标给出(因为实际的矩阵比较大,要求知道相应坐标的信息),只给出在矩阵中的顺序位置,只有一个值

我把程序贴出来,请大家帮我看看:
function sort_a_matrix
clear
clc
X=rand(4,5)
[m,n]=size(X);
max_number=10;
max_value=sort(reshape(X,m,n),'descend')
max_value=max_value(1:max_number)
% max_site=[];
% for i=1:max_number
% max_site=[max_site;find(X==max_value(i))];
% end
[tf max_site]=ismember(X,max_value)
max_value;
max_site
angie 当前离线   回复时引用此帖
旧 2009-04-25, 11:59   #5
angie
初级会员
 
注册日期: 2009-04-24
帖子: 3
声望力: 0
angie 正向着好的方向发展
不错 回复: 如何求一个矩阵中最大的10个元素值及其坐标?

ok啦
function sort_a_matrix
clear
clc
X=rand(4,5)
[m,n]=size(X);
max_number=10;
max_value=sort(reshape(X,1,m*n),'descend')
max_value=max_value(1:max_number)
% max_site(m,n)=zeros
for i=1:max_number
[r(i),c(i)]=find(X==max_value(i));
end
angie 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 17:40


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.