Matlab 求二维矩阵的2个或者更多个峰值

这篇具有很好参考价值的文章主要介绍了Matlab 求二维矩阵的2个或者更多个峰值。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

matlab如何对矩阵寻峰,matlab,矩阵,算法

求一个峰值的方式我就不多说了,find函数就可解决,求两个三个或者更多个该怎么解决?

首先介绍一个函数imregionalmax,具体用法大概就是这样:

PeaksMap = imregionalmax(matrix);
surf(double(PeaksMap));

matrix是原始二维矩阵,由于PeaksMap是logical类型,需要先转换为double

matlab如何对矩阵寻峰,matlab,矩阵,算法

它可以把原始矩阵中所有波峰置1,其余数置0

然后我们就可用find函数搜索这个图中大小为1的值的位置

[maxRow,maxCol]=find(PeaksMap==1);

也就是所有波峰的位置信息就可以得到,再将位置信息带入到矩阵matrix中,那么所有波峰的峰值也可以求出来

peaks=zeros(1,length(maxCol));
for ii=1:length(maxRow)
    peaks(ii)=matrix(maxRow(ii),maxCol(ii));
end

再对求出来的波峰值进行降序排列

%升序排列
[peaks_sort,I] = sort(peaks);
%所有波峰降序排列
peaks_sort=fliplr(peaks_sort);

最后就能得到想要数量的波峰峰值以及其各自的位置信息

%找到需要的若干个波峰
peaks_num=2;%想搜索的波峰数目
maxRow1=zeros(1,peaks_num);
maxCol1=zeros(1,peaks_num);
findpeak=peaks_sort(1:peaks_num);
for jj=1:length(findpeak)
    [maxRow1(jj),maxCol1(jj)]=find(matrix==findpeak(jj));
end

以下是完整代码,如果您觉得有帮助,可以帮忙点赞收藏!文章来源地址https://www.toymoban.com/news/detail-785867.html

clc;clear;close all;
% 创建一个示例的二维矩阵
matrix = ...
    [0,0,0,0,0,0,0,0,0,0;
    0,0,5,0,0,0,0,0,0,0;
    0,0,0,0,0,0,0,0,0,0;
    0,0,0,0,0,0,6,0,0,0;
    0,0,0,0,0,0,0,0,0,0;
    0,0,0,7,0,0,0,0,0,0;
    0,0,0,0,0,0,0,0,0,0;
    0,0,0,0,0,0,0,9,0,0;
    0,0,11,0,0,0,0,0,0,0;
    0,0,0,0,0,0,0,0,0,0;
    ];
figure(1)
surf(matrix);%三维波束图
PeaksMap = imregionalmax(matrix);%对所有波峰置1,其余数置0
figure(2)
surf(double(PeaksMap));%三维波束图
%找到所有波峰的坐标
[maxRow,maxCol]=find(PeaksMap==1);
%% 峰值排序
peaks=zeros(1,length(maxCol));
for ii=1:length(maxRow)
    peaks(ii)=matrix(maxRow(ii),maxCol(ii));
end
%升序排列
[peaks_sort,I] = sort(peaks);
%所有波峰降序排列
peaks_sort=fliplr(peaks_sort);
%找到需要的若干个波峰
peaks_num=2;%想搜索的波峰数目
maxRow1=zeros(1,peaks_num);
maxCol1=zeros(1,peaks_num);
findpeak=peaks_sort(1:peaks_num);
for jj=1:length(findpeak)
    [maxRow1(jj),maxCol1(jj)]=find(matrix==findpeak(jj));
end

到了这里,关于Matlab 求二维矩阵的2个或者更多个峰值的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【算法】在二维不单调的矩阵上二分查找——力扣1901. 寻找峰值 II

    1901. 寻找峰值 II 给定一个从0开始编号的m x n矩阵 mat ,其中任意两个相邻格子的值都不相同。峰值是指那些严格大于其相邻格子(上、下、左、右)的元素。需要找出任意一个峰值 mat[i][j] 并返回其位置 [i, j] 。 示例 1: 示例 2: 步骤一:列转行 首先,将矩阵的列转换为行,表示为

    2024年02月03日
    浏览(40)
  • Fluent UDF中调用Matlab矩阵运算函数(以二维插值为例)

    Fluent UDF中经常需要用到一些常见算法,例如插值、拟合、矩阵运算等等,这些在UDF中是没有现成函数实现的,理论上需要我们自己去写函数。另一方面我们又注意到这些运算恰恰是Matlab的强项,几乎调用一个现成的函数就完成了目的。所以我们有什么办法把Matlab函数给UDF直接

    2024年02月09日
    浏览(54)
  • MATLAB将二维数据生成一维是按列排序,矩阵操作笔记,附代码

    matlab和Fortran二维数组按列优先存储 学习一定要敢想敢做!

    2024年02月07日
    浏览(30)
  • MATLAB中怎样初始化(创建)二维、三维、四维以及多维矩阵,各维度的索引顺序是怎样的?

    在MATLAB中初始化一个二维矩阵是很容易的,我们既可以直接把矩阵的元素值写出,比如下面这样: 也可以直接用函数ones()、zeros()、rand()等函数初始化一个全1或全0或均匀随机分布等的矩阵,然后再对其中的元素进行访问赋值,比如下面这样: 从上面的示例中我们可以看出,

    2024年01月17日
    浏览(33)
  • 基于matlab的高精度信号峰值检测算法

    目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB        峰值检验是示波表中数据采集方式之一, 这种技术起源于存储深度不能满足捕获毛刺的需要。如果用模拟示波器去观察, 只有当毛刺信号是重复性的并且和主信号同步时, 才能看到毛刺信号 。由于毛刺源于其

    2024年02月12日
    浏览(31)
  • Matlab如何打印矩阵

    Matlab如何打印矩阵 在Matlab中,要打印(输出)矩阵,你可以使用disp函数或者直接在命令行中输入矩阵名称。下面我将详细介绍这两种方法。 使用disp函数打印矩阵: disp函数可以用于在命令窗口中显示矩阵的内容。你只需要在代码中调用disp函数并传入要打印的矩阵即可。以下

    2024年02月04日
    浏览(33)
  • 如何使用MATLAB生成随机矩阵

    如何使用MATLAB生成随机矩阵 MATLAB是一种强大的数值计算和科学编程软件,它提供了许多功能强大的工具来生成和处理矩阵。在MATLAB中,要生成随机矩阵,可以使用内置的随机数函数。本文将向您展示如何使用MATLAB生成随机矩阵,并提供相应的源代码示例。 使用rand函数生成随

    2024年02月08日
    浏览(36)
  • matlab如何删除矩阵某行或列?

    要删除矩阵某一行或某一列,只需要将某一行或某一列赋予一个空矩阵即可。 例如: 先创建一个4*4矩阵:x=eye(4),得到  之后输入: x(2,:)=[]后得到  能看出来第二行没了。 如果是删除第二列,就是x(:,2)=[]  

    2024年02月11日
    浏览(42)
  • 【信号变化检测】使用新颖的短时间条件局部峰值速率特征进行信号变化/事件/异常检测(Matlab代码实现)

    💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码及文献 文献来

    2024年02月07日
    浏览(45)
  • Matlab错误:表达式无效。请检查缺失的乘法运算符、缺失或不对称的分隔符或者其他语法错误。要构造矩阵,请使用方括号而不是圆括号。

    错误:表达式无效。请检查缺失的乘法运算符、缺失或不对称的分隔符或者其他语法错误。要构造矩阵,请使用方括号而不是圆括号。 原因:选中了matlab右侧工作区的变量空间,叉掉去即可。  

    2024年02月16日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包