matlab一组数据里面最小值,有没有函数可以直接找出来?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab一组数据里面最小值,有没有函数可以直接找出来?相关的知识,希望对你有一定的参考价值。

比如i=1:100; a=f(i);b=g(i);c=p(i)
当a-b的差值最小时,disp(c),请问怎么做?

1、首先在电脑中打开matlab,利用内联函数建立函数表达式,如下图所示。

2、然后求解区间内最小值,返回最小值横坐标,如下图所示。

3、接着返回横坐标和最小值,如下图缩小。

4、然后建立函数表达式,求解,返回横坐标,如下图所示。

5、最后返回横坐标和最小值,如下图所示,就完成了。

参考技术A [D,I] = min(a-b);

disp(c(I));

第一个返回值是最小值本身,第二个返回的就是那个index。。。。。没必要find。。。
参考技术B 如果f(i),g(i),是数组的话,就可以直接运算。如果是一个函数的话,可以先把f,g算出来然后运算。假设f,g是f(i),g(i),运算后的数组。
t = f-g;%%计算a-b的差值
indexi= find(t==min(t));%%找出差值最小时i值的位置
i = i(indexi);%%差值最小时,i的取值。如果i=1:100,i就等于indexi了
c = p(i);%%计算c值,p可以是函数,也可以是一组数组本回答被提问者和网友采纳
参考技术C x=[0 18.4523 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一下,看看它的功能与要求……
参考技术D d=a-b;
min_index=find(d==min(d));
min_index就是最小值对应的下标,min(d)是最小值。

在Matlab中找到列向量中一组数字的最小值

【中文标题】在Matlab中找到列向量中一组数字的最小值【英文标题】:Finding minimum value of a set of numbers in a column vector in Matlab 【发布时间】:2018-04-18 22:56:13 【问题描述】:

我试图在作为矩阵一部分的列向量中找到一组数字的最小值。更具体地说,如果我有一个矩阵如下,

 1 2 3  4  2.7
 7 2 3  8  2.3
 5 2 3  9 12.5
10 4 5 12  1.1
11 4 5 13  5.6
14 5 6  7  1.2
15 5 6  8  0.5
16 5 6  9  3.4
17 5 6 12  6.8

那么,我希望输出如下,

 7 2 3  8 2.3
10 4 5 12 1.1
15 5 6  8 0.5

我想过根据第 2 列和第 3 列是否相同来划分矩阵,然后在每个子矩阵中找到第 5 列的最小值,但我无法有效地实现它。 (编辑:我试图做的是,我首先将矩阵的第 2 列和第 3 列分开(比如 A),然后我使用 unique 来获取重复行的出现次数,如下所示,

      A_dup = A(:,2:3)
      [A_uni,~,u_id] = unique(A_dup,'rows')
      num_occur = histc(u_id, unique(u_id)) 

向量“num_occur”将告诉我如何将矩阵 A 划分为子矩阵。这并不多,但我在这之后被卡住了。)

如果有更好的方法,我会很高兴知道。

【问题讨论】:

【参考方案1】:

使用sortrows根据第5列的元素对矩阵进行排序,得到排序后的元素的索引。找到新矩阵的第 2 列和第 3 列的 unique 行的行下标。将这些行下标与之前找到的索引一起使用,以获取要从原始矩阵中保留的行下标。 Sort他们维护秩序。使用排序后的新行下标得到需要的结果。

[req, idxA] = sortrows(A, 5);           
[~, idxtmpA] = unique(req(:,2:3), 'rows');
req = A(sort(idxA(idxtmpA)), :);

【讨论】:

以上是关于matlab一组数据里面最小值,有没有函数可以直接找出来?的主要内容,如果未能解决你的问题,请参考以下文章

怎么通过一组数据拟合出总体分布

怎么用matlab求商函数

在Matlab中找到列向量中一组数字的最小值

MATLAB如何取数组中非零的最小值,数组里面都是正数。

谁能帮我用matlab归一化一组数据,需要运行结果,谢谢

matlab 求解函数极小值问题