matlab对一组坐标,想找出x中最小的值(有好几个),这几个最小值再按Y排序?输出编号和坐标。。。

如题所述

主要就是min, index, sortrows这几个命令,加上矩阵操作。

clc;clear;
a = [ 2 1 ; 2 6; 5 10;2,5; 3, 15]
%找出a中每一列的最小值
[M,I] = min(a,[],1);
%找出a中第一列最小值所在的行
index = find( a(:,1) == M(1) );
%从a中提取出这些行的第二列的值
tmp = [ index, a(index,2)];
%左边是序号,右边是排序后的y值
tmp = sortrows(tmp,2)

 ç»“果:

a =

     2     1
     2     6
     5    10
     2     5
     3    15


tmp =

     1     1
     4     5
     2     6追问

按这个数列我需要输出的结果是 2 1
2 5
2 6

追答

我感觉你没看懂程序,你要是看懂了的话,自己就会改了。。

下面主要修改了第8行。

clc;clear;
a = [ 2 1 ; 2 6; 5 10;2,5; 3, 15]
%找出a中每一列的最小值
[M,I] = min(a,[],1);
%找出a中第一列最小值所在的行
index = find( a(:,1) == M(1) );
%从a中提取出这些行的第二列的值
tmp = [ a(index,1), a(index,2)];
%左边是序号,右边是排序后的y值
tmp = sortrows(tmp,2)

结果:

a =

     2     1
     2     6
     5    10
     2     5
     3    15


tmp =

     2     1
     2     5
     2     6
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-05-24
简单排序就可以了追问

没学过MATLAB,能不能详细说一下?

matlab一组数据里面最小值,有没有函数可以直接找出来?
1、首先在电脑中打开matlab,利用内联函数建立函数表达式,如下图所示。2、然后求解区间内最小值,返回最小值横坐标,如下图所示。3、接着返回横坐标和最小值,如下图缩小。4、然后建立函数表达式,求解,返回横坐标,如下图所示。5、最后返回横坐标和最小值,如下图所示,就完成了。

matlab,编写函数[y,p]=min1(x),找出向量x中的最小值及它所在的位置...
function [min,b]=getmin(A)%min和b分别是最小值和下标数组 n=length(A);%提取输入数组长度,要是一维数组 min=A(1);j=1;%j是下标数组的下标,最小为1,肯定有最小啊 for i=1:n%这个循环求最小值 if A(i)<min min=A(i);end end for i=1:n%这个循环求下标,存入b if A(i)...

Matlab中如何设置坐标轴的范围
在Matlab中,设置坐标轴的范围是通过`xlim`和`ylim`函数来实现的。首先,`xlim`函数用于设置或查询x轴的范围。其基本语法是`xlim`,其中`xmin`和`xmax`分别代表x轴的最小值和最大值。例如,如果我们想要将x轴的范围设置为从0到10,我们可以使用以下命令:`xlim`。这将确保图形显示的x轴范围从0开始...

matlab设置坐标轴刻度(matlab设置坐标轴刻度间隔)
可以用matlab提供的坐标轴设置函数axis进行设置(对当前坐标轴进行设置),具体用法如下: axis([xmin xmax ymin ymax]); % 设置坐标轴在指定的区间 xmin、xmax 表示设置横坐标的最小最大值; ymin、ymax 表示设置纵坐标的最小最大值。也可以用下面的set函数进行设置(对指定的坐标轴进行设置),...

matlab画图时怎么给多个点(有坐标)标注数字序号啊?
1、首先在matlab软件新建一个m文件,然后在m文件的窗口中输入一个正弦函数的图形代码。2、这时候,按下matlab上面的那个run绿色按钮运行这些代码,就可以产生一个周期的正弦函数图形窗口。3、以下以要找到正弦函数最高点的位置。4、利用代码:text(x(p_max),y(p_max),'o','color','g'),其中...

matlab如何出求最大,小值和其坐标?
fminbnd”例如求x^2+1在[-2,2]的最小值,f=inline('x.^2+1');%通过内联函数建立函数f [x1,fx]=fminbnd(f,-2,2)x1为在x=x1时,函数f取得最小值fx 如果想求最大值,则可以用g=-f,g的最小值就是f的最大值。补充一下,求多元函数的极值的函数是“fminsearch”。

用matlab,编写函数[y,p]=min1(x),找出向量x中的最小值及它所在的位置...
y=x(1);p=[1];for i=1:size(x,1) %x须使列向量 if x(i)<y p=[i];y=x(i);elseif x(i)==y p=[p; i]; %存最小值的位置 end end

MATLAB中给出一组数,求最小值
你的学习还任重道远啊!x=[0 18.8680 30.5655 36.9628 75.9276 81.6088 96.0469 78.6924];[min_of_x i]=min(x)这两个语句就可以了 输出参数中,min_of_x记录最小值 i记录最小值的下标。p.s.看到一个matlab的函数,先help一下,看看它的功能与要求……...

matlab求一行向量中10个最小值的位置
[Y,I]=sort(DATA,2,'ascend'); %按照行进行升序排列 RowCol.value=Y(:,1:V); %结构体RowCol,存放数值 RowCol.row=repmat((1:N).',V); %行坐标值 RowCol.col=I(:,1:V); %列坐标值

matlab 做二维图像并找出最小值点坐标
首先 [Y,I] = MIN(X)表示找出X的最小值Y,然后最小值时候的索引值I。这里我们这样用,[ymin,I]=min(y);则 x(I),y(I)就是最小值时候的横纵坐标。整体程序为:x=[0:0.01:6];y=x.^4-4.*(x.^3)+3.*x+5;plot(x,y);[ymin,I]=min(y);hold on % 禁止刷新图形,...

相似回答