How to get the smallest value in submatrices

1 回表示 (過去 30 日間)
Hung Dao
Hung Dao 2021 年 10 月 2 日
コメント済み: Hung Dao 2021 年 10 月 2 日
Hi,
I would appreciate if you could help me with this problem.
I have a big matrix , where are submatrices of the same size.
I want to get a vector containing the smallest elements in each submatrices. I want to avoid for loop as it might slow down my whole program.
Thanks.

採用された回答

Bruno Luong
Bruno Luong 2021 年 10 月 2 日
B=randi(9,10,2)
B = 10×2
3 7 6 6 6 3 3 5 3 9 3 5 1 5 5 9 8 2 7 8
[m,n] = size(B);
k = 5;
if mod(m,k)
error('m must divisible by k');
end
minsub = min(reshape(B,[m/k k n]),[],[1 3]).'
minsub = 5×1
3 3 3 1 2
  1 件のコメント
Hung Dao
Hung Dao 2021 年 10 月 2 日
Thank you very much.
This is exactly what I need.

サインインしてコメントする。

その他の回答 (1 件)

Kevin Holly
Kevin Holly 2021 年 10 月 2 日
cellfun(@min,B,'UniformOutput',false)
%or
cellfun(@min,cellfun(@min,B,'UniformOutput',false),'UniformOutput',false)
  6 件のコメント
Kevin Holly
Kevin Holly 2021 年 10 月 2 日
I was under the impression that you already had a big matrix B that contained submatrices. If this is not the case, how are your data organized? Are all the matrices in a folder/workspace individually?
Hung Dao
Hung Dao 2021 年 10 月 2 日
My apologies for the confusion.
My algorithm leads to a big matrix, not the submatrices.
But I need to partition the big matrix into submatrices of the same size, and in each submatrix I want to find the minimum value.
I hope it is clear now.
Thank you.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

製品


リリース

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by