扫描矩阵并在 Matlab 中找到 2 个范围之间的最大值

Posted

技术标签:

【中文标题】扫描矩阵并在 Matlab 中找到 2 个范围之间的最大值【英文标题】:Scan a matrix and find the maximum value in Matlab between 2 ranges 【发布时间】:2019-02-28 22:18:09 【问题描述】:

我有一个文本文件形式的矩阵,我希望使用 MATLAB 对其进行扫描,并扫描 2 个点(1.5 和 2)之间的最大值并将其用作阈值。

我写了一个代码,但它返回了一个错误。

    [filename, pathname] = uigetfile('*txt', 'Pick text file');
data = dlmread(fullfile(pathname, filename)); 
t=data(:,1);
N = size(t,1);
m= max(data(1.5,2));
figure;
threshold = m;

文件错误(第 214 行) m= max(数据(1.5,2));

【问题讨论】:

您当前要求它使用 1.5 作为索引来查找值,这是不可能的。我建议阅读有关逻辑运算符的 matlab 帮助。 @etmuse 我知道数据范围在 1.5 和 2 之间,所以希望扫描数据并找到最大值并将其用作阈值 如前所述:您使用1.5 作为索引data(A,B) 为您提供dataA,B 给出的索引上的值。 MATLAB 要求您的索引是非负的实整数。使用逻辑运算符定义[1.5 2] 的范围,然后在结果集上使用max 【参考方案1】:

data(1.5,2) 不要求 data 的元素值介于 1.52 之间;它要求data 在“第 1.5”行和第 2 列上的元素,这显然是未定义的。索引必须是整数。

data的元素值在1.52之间可以用

data(data > 1.5 & data < 2)

这样你就可以得到最大的使用

m = max(data(data > 1.5 & data < 2));

【讨论】:

以上是关于扫描矩阵并在 Matlab 中找到 2 个范围之间的最大值的主要内容,如果未能解决你的问题,请参考以下文章

如何完美对齐 2 个扫描的多项选择纸图像? (Matlab)

在MATLAB中使用矩阵而不是向量进行引导?

在MATLAB中找到具有共同重叠区域的多个圆

我可以在 matlab 矩阵的每一行和没有循环的向量之间找到共同值吗?

如何将给定矩阵的每一行中的所有元素与给定向量的相应元素相乘并在 MATLAB 中求和?

matlab怎么把元素替换成NAN