首页 > 解决方案 > 如何找出一个数字在矩阵中的位置并删除它以及添加它?

问题描述

我有一个矩阵是一堆行,例如:

x = [1; 2; 3; 4; 5]

我要做的是3.5在保持顺序的同时添加矩阵。例如,上面的矩阵将是:

[1; 2; 3; 3.5; 4; 5]

我想弄清楚的另一件事是如何检查某个数字是否存在于某个区间内的矩阵中。例如,如果我想查看是否4.5存在于某个.5区间内,它会说它是在4and找到的5

我可以通过循环看到这样做for,但这感觉就像 MATLAB 应该内置的东西。我想要这样做的原因是让我的代码高效,因为我将处理一个巨大的数据集。对于区间问题,我正在考虑使用ismembertol,但问题是 tol 始终是一个百分比,它不是像.5.

标签: matlabmatrix

解决方案


%assume that it is in sorted order
insertind = find(x<3.5,1, 'last') 
x = [x(1:insertind); 3.5; x(insertind+1:end)]; %inserted at that index
%exists within tolerance
find(abs(x-4.5)<=0.5)

推荐阅读