Matlab从数组查找并选出符合条件的值

供稿:hz-xin.com     日期:2025-01-14
Matlab 如何选出数组里面符合条件的行

clear;
clc;
worm=[1 18 1
1.25 20 1
1.25 22.4 1
1.6 20 1
1.6 20 2
1.6 20 4
1.6 28 1
2 22.4 1
2 22.4 2];
a = find(worm(:,3)==2); %%%%%% 把第三列值是2的所有行都挑出来
b = worm(a,1:2) %%%%%% 把前两列赋给数组b

结果:

b =

1.6000 20.0000
2.0000 22.4000

>>

找下标:ind = find(X>3&X<12)
ind =
3 5 7 8
相应的值 X(ind)
ans =
6 7 8 9

可这样:
clc
clear
A=[1 2 3 4 5 23 35 34 23 8 7 0 7 21 4 32 53 1 2 4 14];
k=find(A>30);
a=A(k);
s=diff(k);
if any(s>1)
n=length(find(s>1));
fprintf('有%d个不连续组:\n',n+1)
kk=find(s>1);
if n==1
a1=a(1:kk)
a2=a(kk+1:end)
end
else
disp('全连续')
end

要求比较特殊,没有什么现成的方法。我写了一个,仅供参考:

A = [1 2 3 4 5 23 35 34 23 8 7 0 7 21 4 32 53 1 2 4 14];
a = {};

index = 1;
itr = 1;
nA = length(A);
while itr < nA;
    i = itr - 1 + find(A(itr:end) > 30, 1);
    if isempty(i)
        break
    end
    j = i - 1 + find(A(i:end) <= 30, 1);
    if isempty(j)
        j = nA + 1;
    end
    
    a{index} = A(i:j-1);    %#ok<AGROW>
    index = index + 1;
    itr = j;
end

a{1}
a{2}


A=[1 2 3 4 5 23 35 34 23 8 7 0 7 21 4 32 53 1 2 4 14]
A =
Columns 1 through 17
1 2 3 4 5 23 35 34 23 8 7 0 7 21 4 32 53
Columns 18 through 21
1 2 4 14
>> a=A(A>30)
a =
35 34 32 53
>>

你的问题貌似没有说清楚啊,32 和 53 就不连续,怎么就放到一起了?

Matlab如何用for循环找出两个数组中的相同元素
clc;cleara=[1,2,3,4,4,7,8];b=[1,5,7,4,3,2];c=zeros(min([numel(a),numel(b)]),1);ct=0;for i=1:numel(a) for j=1:numel(b) if(a(i)==b(j)) ct=ct+1; c(ct)=a(i); break; end endendc=unique(c)

matlab中find函数如何使用
如果没有找到符合条件的元素,则返回空数组。3. 二维矩阵中的使用:在二维矩阵中,find函数也可以发挥作用。它可以找到满足条件的元素在矩阵中的位置。例如,对于矩阵中的特定列或行,可以使用特定的索引来实现搜索。在复杂的矩阵操作中,find函数结合其他MATLAB函数可以大大提高数据处理效率。对于三维或更高...

MATLAB 数组中查找最接近元素
1、在桌面上双击matlab快捷方式,启动matlab,如图所示。2、在“命令行窗口”中输入数组和进行浮点计算的命令,例如:A=[2,3,5,7,3,9, 5,6]; B=sqrt(A)如图所示。3、在键盘上点击“回车Enter ”,此时,在“命令行窗口”和“工作区”中出现了由无理数元素组成的数组B,如图所示。4、在“...

如何将MATLAB中的数组中的数据提取出来
对于更复杂的数据提取需求,你可以使用`for`循环或`while`循环结合索引来遍历数组,并根据需要提取或处理数据。这种方法提供了最大的灵活性,但可能不是最高效的,特别是在处理大数据集时。通过这些基本的索引和切片操作,你可以在MATLAB中灵活地提取和操作数组中的数据,而无需依赖表格或图片的视觉化表示...

matlab如何筛选数据
在MATLAB中筛选数据通常涉及逻辑索引或条件表达式。逻辑索引允许你根据某些条件选择数组或矩阵中的元素。假设你有一个名为`data`的数组或矩阵,并且你想要筛选出所有大于某个值`threshold`的元素。你可以这样做:```matlab 假设data是你的数据数组或矩阵 threshold是你设定的阈值 threshold = 10; % 举例,...

MATLAB从一维数组中随机抽取一个数,并且返回这个数的位置
T=rand(length(a),1)*(length(a)+1);a(T)

matlabfind函数怎么用
基本用法、条件查找、指定返回数量的查找、多维数组的查找、同时返回值和索引。1、基本用法:找出非零元素的下标。例如,如果有一个数组`a=`,输入`find(a)`将返回`a`中所有非零元素的下标。2、条件查找:找出满足特定条件的元素下标。例如,输入`find(a>4)`将返回`a`中大于4的元素的下标。3、...

MATLAB数组中查找最接近元素
直接在MATLAB中,你可以轻松查找数组中最接近给定数值的元素。首先,启动MATLAB,双击桌面上的快捷方式即可(如图所示)。在“命令行窗口”中,操作步骤如下:创建一个数组,例如A=[2,3,5,7,3,9,5,6],通过计算函数生成新的数组B,如B=sqrt(A)。按下回车键后,你会看到包含无理数元素的B数组(...

matlab中怎么用find函数得到一个数组中的一段数据
这个没必要用find。用矩阵索引就行,所谓索引就是指下标,这里可以用 a1=a(1,10:15)%第一行,第10至15列,给a1 如果有好几行,相应的改变就行,如果整行或者整列都要索引,用‘:’a=magic(3)a = 8 1 6 3 5 7 4 9 2 >> a1=a(2,2:3)a1 = 5 7 >> a...

matlab怎么筛选特定数据
在MATLAB中,筛选特定数据通常涉及逻辑索引或使用`find`函数。逻辑索引通过创建一个与原始数据同样大小的逻辑数组(true\/false)来实现,其中true表示该位置的数据满足筛选条件,false表示不满足。然后,可以使用这个逻辑数组来索引原始数据,从而得到筛选后的结果。例如,假设你有一个向量`A`,你想要筛选出...