请教一下各位,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的点,然后再获取对应的纵坐标数值。具体步骤如下:
下面是用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中。
希望这个答案能够帮助到你!如果你还有其他问题,请随时提问。
【相关推荐】