hi i have 1x36 cell,each cell contains 7x7 double, i need to divide each 7x7 equally into 4 halves and find max value in each halves,likewise for all 36 cells

2 ビュー (過去 30 日間)
help me with matlab code
  4 件のコメント
kaavya subramani
kaavya subramani 2016 年 11 月 22 日
for eg=[1 2 3 4 5;6 7 8 9 10;1 12 13 14 15;16 17 18 19 20] my fist part contains [1 2 3 6 7 8],2nd part=[4 5 9 10],3rd part=[11 12 13 16 17 18],4th=[14 15 19 20],i need to find max value of each part also

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

採用された回答

Guillaume
Guillaume 2016 年 11 月 22 日
編集済み: Guillaume 2016 年 11 月 22 日
yourcellarray = arrayfun(@(~) randi(20, 7), 1:36, 'UniformOutput', false) %demo data
cellfun(@(m) cellfun(@(quadrant) max(quadrant(:)), ... max of a quadrant
mat2cell(m, ... convert matrix in cell into cell of 4 quadrant
[ceil(size(m, 1)/2), floor(size(m, 1)/2)], ...
[ceil(size(m, 2)/2), floor(size(m, 2)/2)])), ...
yourcellarray, 'UniformOutput', false) %process each cell
edit: removed the 'UniformOutput', false from the inner cellfun since it's actually not needed. The output is thus a 1x36 cell array of 2x2 matrix instead of a 1x36 cell array of 2x2 cell arrays of scalars.

その他の回答 (2 件)

KSSV
KSSV 2016 年 11 月 22 日
clc; clear all ;
A = cell(1,36) ;
for i = 1:36
A{i} = rand(7) ;
end
%
B = cell(1,36) ;
for i = 1:36
A1 = NaN(8) ;
A1(1:7,1:7) = A{i} ;
% split to equal parts like +
A2(:,:,1) = A1(1:4,1:4) ;
A2(:,:,2) = A1(1:4,5:8) ;
A2(:,:,3) = A1(5:8,1:4) ;
A2(:,:,4) = A1(5:8,5:8) ;
% get maximum
B{i} = max(A2,[],3) ;
end
  2 件のコメント
kaavya subramani
kaavya subramani 2016 年 11 月 22 日
Thanks a lot sir,but i didnt get max value as per your code,also plz mention where to apply my data, in your code
KSSV
KSSV 2016 年 11 月 22 日
For the random values max is as expected....A should be your data..

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


Bhanushnkar Gedela
Bhanushnkar Gedela 2019 年 3 月 15 日
how to split the 16*64 matrix into 4 16*16 matrices

カテゴリ

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

Community Treasure Hunt

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

Start Hunting!

Translated by