【问题标题】:Scan a matrix and find the maximum value in Matlab between 2 ranges扫描矩阵并在 Matlab 中找到 2 个范围之间的最大值
【发布时间】: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

标签: matlab matrix range minimum threshold


【解决方案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));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-28
    • 1970-01-01
    • 2015-05-07
    • 1970-01-01
    • 1970-01-01
    • 2021-09-20
    • 2019-04-17
    • 1970-01-01
    相关资源
    最近更新 更多