【问题标题】:Search for max value in a specified region of a matrix then extract a section of the matrix around the max value在矩阵的指定区域中搜索最大值,然后在最大值附近提取矩阵的一部分
【发布时间】:2012-08-20 17:24:41
【问题描述】:

我正在尝试提取矩阵的特定区域,然后在该区域内找到最大值并提取其周围的值以形成一个新的 9x9 矩阵。

这是我目前发现的,我认为需要实施的:

% extract region
BRegion = B(rowStart:rowEnd, colStart:colEnd);
% find max value and get its index
[value, k] = max(BRegion(:));
[i, j] = ind2sub(size(BRegion), k);
% move indexes to correct spot in matrix 
i = i + rowStart-1;
j = j + colStart-1; 

在具有索引的区域中找到最大值后,我如何通过取其周围 9x9 区域中的值并以最大值为中心来构建新矩阵?

【问题讨论】:

  • 看来你已经解决了……你只需要解压B(i-4:i+4,j-4:j+4)
  • 是啊哈哈,我刚才还没有想到,但是感谢您的输入

标签: matlab matrix indexing extract region


【解决方案1】:
% extract region
rowstart = 300;
rowend = 500;
colstart = 3500;
colend = 4500;
BRegion = B(rowstart:rowend, colstart:colend);

% find max value and get its index
[value, k] = max(BRegion(:)); 
[i, j] = ind2sub(size(BRegion), k);

% move indexes to correct spot in matrix
i = i + rowstart-1;
j = j + colstart-1;

% creates new matrix
new_row_begin = i-4;
new_row_end = i+4;
new_col_begin = j-4;
new_col_end = j+4;

newmat = B(new_row_begin:new_row_end,new_col_begin:new_col_end);

【讨论】:

  • 不要忘记检查所有new_* 值的矩阵边界。
猜你喜欢
  • 1970-01-01
  • 2016-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多