matlab中的矩阵元素错位,matlab – 如何将矩阵中较弱元素附近的弱元素归零?
解决这个问题的基本工作流程可以描述如下 –
>对所有非零点进行排序.
>从最高值开始,并将其N邻域内的所有非零点设置为零.
>对第二个最高点进行相同操作,并将其N邻域内的所有非零点设置为零,排除非零值,其值高于当前值.这个排除部分可以通过代码中非常有用的MATLAB工具triu来实现.
>继续,直到覆盖每个非零点.当然,当我们沿着这个阶梯向下移动时,由于前面讨论过的排除条款,搜索的点数会更少.
这些步骤可以使用矢量化方法实现,不使用特殊工具箱并假设A作为输入 –
%// Distance parameter
N = 2;
%// Find all non-zero points and then sort them in descending manner
[x,y] = find(A~=0)
pts = [x y]
[val,sorted_idx] = sort(A(A~=0),'descend')
pts = pts(sorted_idx,:)
%// Find euclidean distances
distmat = sqrt(squared_dist(pts,pts))
%// Find points to be removed (set to zero); then calculate their linear indices
rm_pts = pts(any(triu(distmat
rm_lin_idx = sub2ind(size(A),rm_pts(:,1),rm_pts(:,2))
%// Use those linear indices to set those in the input as zeros
out = A;
out(rm_lin_idx) = 0;
相关的功能代码(找到平方的欧氏距离) –
function sq_distmat = squared_dist(A,B)
[nA,dim] = size(A);
nB = size(B,1);
A_ext = ones(nA,dim*3);
A_ext(:,2:3:end) = -2*A;
A_ext(:,3:3:end) = A.^2;
B_ext = ones(nB,dim*3);
B_ext(:,1:3:end) = B.^2;
B_ext(:,2:3:end) = B;
sq_distmat = A_ext * B_ext.';
return;
代码运行 –
A =
0 0 0 0.9000 0 0
0 0 0.2000 0 0 0.5000
0 0 0.7000 0 0 0
0 0.4000 0.1000 0 0 0
out =
0 0 0 0.9000 0 0
0 0 0 0 0 0.5000
0 0 0.7000 0 0 0
0 0 0 0 0 0
matlab中的矩阵元素错位,matlab – 如何将矩阵中较弱元素附近的弱元素归零?相关推荐
- matlab产生一组均为一的矩阵,在matlab中如何从一组数中得到随机数组成一个n*n的矩阵...
导航:网站首页 > 在matlab中如何从一组数中得到随机数组成一个n*n的矩阵 时间:2019-3-15 在matlab中如何从一组数中得到随机数组成一个n*n的矩阵 从1,2,3,4,5,6 ...
- matlab矩阵 代表什么,matlab中矩阵AB是什么意思
Q1:matlab矩阵中的'代表什么意思 A(1)是指矩阵中的第一个元素. matlab中矩阵的排列是按照从上往下,从左往右的: 比如说,一列数,给转化为矩阵,排列如下: >> a=1:1 ...
- matlab中如何用数组绘图,matlab 基础学习(1)——数组,矩阵操作和绘图基础学习...
一维数组(创建,赋值,取值,分割取值,四则运算等操作) 创建一维数组 >> A=[] %创建空的数组 >> B=[1 2 3 4 5] %两种创建行向量,数组的方式 >& ...
- matlab指针矩阵乘法,为什么MATLAB在矩阵乘法中速度这么快?
这类问题是反复出现的,应该比"Matlab使用高度优化的库"或"Matlab使用MKL"一次更清楚地回答堆栈溢出. 历史: 矩阵乘法(与矩阵向量.向量乘法和许多 ...
- matlab 矩阵角标,MATLAB中的矩阵索引
MATLAB中的矩阵索引 作者:SteveEddins and Loren Shure 译:王茂春 利用矩阵的索引取出原矩阵的子集元素是一种有效的方式.MATLAB的多种索引类型不仅强大.灵活,而 ...
- matlab 统计数组频数_利用MATLAB进行频率分析(统计数组中元素个数)
在日常计算,工作中使用MATLAB经常会遇到这样的一个问题:如何统计数组中各数字(元素)出现的频数.频率和累积频率?本文就按照案例演示的方式做一个总结. 第一种方法:调用MATLAB自带的函数tabu ...
- matlab 十六进制数组,【MATLAB】MATLAB中读取二进制数据文件并加入到矩阵中
MATLAB中读取二进制数据文件并加入到矩阵中的应用如下: 如果对c语言十分熟悉的话,应该对fopen,fclose,ftell,fseek,fread,fwrite,feof 这些函数非常熟悉了,在 ...
- matlab矩阵对某一列求和,将矩阵中的每一列与另一列中的对应行相乘,然后在Matlab中求和...
可以说我有矩阵A = [1 2; 3 4], B = [4 3; 2 1]. 我想将矩阵A ([1; 3], [2; 4])中的每一列乘以矩阵B ([4 3], [2 1])中的相应行,并对得出的矩阵 ...
- matlab可视化大学物理学_传输矩阵法在大学物理波动光学教学中的应用
1 提出问题 在现代光学技术中,从基本的光学元件增反膜和增透膜[1],到超快光路中用来补偿飞秒激光色散的啁啾镜,以及半导体微腔领域中广泛使用的分布式布拉格反射器(DBR)[2],这些光学元件基本的特征 ...
- 在matlab中,利用for循环来生成一个矩阵,并分别对该矩阵的行和列进行求和
在matlab中,利用for循环来生成一个矩阵,并分别对该矩阵的行和列进行求和 先创建一个新的脚本,并保存,在编辑器中进行编辑.具体如图,以5阶方阵为例: a=zeros(5,5): for i=(1 ...
最新文章
- 使用 IntelliJ IDEA 查看类图,内容极度舒适
- 渴望订阅– RxJava常见问题解答
- [密码学基础][每个信息安全博士生应该知道的52件事][Bristol52]47.什么是Fiat-Shamir变换?
- mysql getline_getMessage(),getFile,getLine获取异常用法
- xml文件转换成图片_怎样能把PDF文件转换成图片?
- 专题导读:学术大数据
- php根据地理位置签到,微信小程序获取地理位置实现定位签到功能
- JavaScript_8_比较,条件语句
- 如何将显示器连接到 Mac?
- iOS - Label 数字动态变化
- UITableView 删除cell
- memcache php 到期时间,Memcache PHP会话调优:memcache如何过期密钥?
- 群体遗传进化专题之选择性清除分析
- 支付沙箱环境测试和验签
- 计算机应用基础难点,计算机应用基础(本科)重、难点
- 综合素质计算机考点,教师资格综合素质考前必背知识点:基本能力
- 计算机组成原理(王道精讲课 + 天勤高分笔记) note
- 雷达信号处理算法:静态杂波滤除(附MATLAB代码和数据)
- Java解析XML数据(三)——强大的XOM之simple-xml解析
- 【Linux学习】基础IO
热门文章
- 190226每日一句
- Image Pyramids
- Atitit 程序设计概论 艾提拉著作 目录 1. 界面ui设计	1 2. 编程语言部分	1 3. 面向对象的程序设计	1 4. 算法章节 数据结构	1 5. 第21章 标准库	2 5.1. 文件i
- Atitit 分布式文件系统总结 fastdfs nfs smb webdav ftp 目录 1.1. webdav 是个好的方案。。。Server client都有	1 1.2. ftp也方便ja
- Atitit webdav 的问题 -------------大文件传输问题 在某些版本的 Windows 操作系统中,WebDAV 驱动器的最大文件大小被限制为 50MB。如果你试图复制超过 5
- atitit.session的原理以及设计 java php实现的异同
- paip.java 注解的详细使用代码
- paip. http 405 的解决..
- 高费率基金是投资者的毒药
- Rust: codewars的DNA to RNA Conversion