matlab如何在二维数据里找点

请教一下各位,matlab如何在一堆二维数据里找点
eg:x=[1.2,1;1.3,2;1.32,3;1.35,4;1.5,5;1.63,6;1.51,7;1.45,8;1.52,9;1.42,10]
我想找 横坐标大于1.35,及其对应的纵坐标数值。

用matlab里面的逻辑索引功能,官方教程:
https://ww2.mathworks.cn/help/matlab/math/array-indexing.html#MatrixIndexingExample-3
例如,下面的代码就可以显示所有横坐标大于1.35,及其对应的纵坐标数值:

x=[1.2,1;1.3,2;1.32,3;1.35,4;1.5,5;1.63,6;1.51,7;1.45,8;1.52,9;1.42,10];
x(x(:,1)>1.35,:)

运行结果:
ans =

1.5000    5.0000
1.6300    6.0000
1.5100    7.0000
1.4500    8.0000
1.5200    9.0000
1.4200   10.0000

码字不易,有用希望采纳一下哦

可以用find,先找到大于1.35的位置,再取出值:

x1 = x(find(x(:,1)>1.35),:)

还可以考虑用for循环:

x1 = [];
for i = 1:length(x(:,1))
    x2 = x(i,1);
    if x2 > 1.35
        x1 = [x1;x(i,:)]
    else
        continue
    end
end

【以下回答由 GPT 生成】

可以使用MATLAB中的逻辑索引来筛选出横坐标大于1.35的点,然后再获取对应的纵坐标数值。具体步骤如下:

  1. 将提供的数据存储在一个二维数组中,其中每一行表示一个点的横坐标和纵坐标。
  2. 使用逻辑索引来筛选出横坐标大于1.35的点。可以通过将横坐标和1.35进行比较,得到一个逻辑数组,然后将该逻辑数组作为索引来获取符合条件的点。
  3. 获取符合条件的点的纵坐标数值。可以通过提取索引对应的数据来获得纵坐标数值。

下面是用MATLAB代码实现这个功能的示例:

% 问题标题: 如何在二维数据中找到横坐标大于指定值的点
% 问题标签: MATLAB, 二维数据处理

% 给定数据
x = [1.2, 1; 1.3, 2; 1.32, 3; 1.35, 4; 1.5, 5; 1.63, 6; 1.51, 7; 1.45, 8; 1.52, 9; 1.42, 10];

% 指定值
threshold = 1.35;

% 筛选横坐标大于指定值的点
indices = x(:, 1) > threshold;

% 获取符合条件的点的纵坐标数值
y_values = x(indices, 2);

上述代码中,首先将提供的数据存储在二维数组x中。然后指定一个阈值threshold为1.35。通过将x的第一列(横坐标)与阈值进行比较,得到一个逻辑数组indices,表示哪些点的横坐标大于1.35。最后,通过使用indices来提取符合条件的点的纵坐标数值,将其保存在y_values中。

希望这个答案能够帮助到你!如果你还有其他问题,请随时提问。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^