max and min value of matrix
9 views (last 30 days)
Show older comments
Ashvin Hamzah Driwantara
on 6 Jan 2017
Answered: Zeeshan Salam
on 24 Mar 2019
I have AB matrix that contains 3000x2000 grids data.
AB =
(1,1) (1,2) (1,3) (1,4) ... (1,3000)
(2,1) (2,2) (2,3) (2,4) ... (2,3000)
(3,1) (3,2) (3,3) (3,4) ... (3,3000)
(4,1) (4,2) (4,3) (4,4) ... (4,3000)
(5,1) (5,2) (5,3) (5,4) ... (5,3000)
...
...
...
(2000,1)
I want to calculate (MAX-MIN) value for each 3x5 grids in matrix AB
For Example :
If target grid is (3,2), I use 15 grids data (1~5,1~3) for calculation of MAX and MIN.
And if MAX is (1,1) and MIN is (2,3), then (MAX-MIN) at (3,2) is ((1,1)-(2,3)).
In the same way, if target grid is (3,3), I use (1~5,2~4).
Can you help me to make automatic script to calculate this??
2 Comments
Stephen23
on 6 Jan 2017
@Ashvin Hamzah Driwantara: your question is not clear. Please edit your question and provide us with complete input and output examples so that we can write and test code.
Accepted Answer
Stephen23
on 6 Jan 2017
Edited: Stephen23
on 6 Jan 2017
blockproc might do what you want:
>> X = rand(3000,2000);
>> Xmax = blockproc(X,[3,5],@(s)max(s.data(:)));
>> Xmin = blockproc(X,[3,5],@(s)min(s.data(:)));
>> Xdif = Xmax - Xmin;
5 Comments
Stephen23
on 6 Jan 2017
@Ashvin Hamzah Driwantara: have a look at my revised answer. You will need to change the function inside the anonymous function:
@(s)std(s.data(:))
More Answers (4)
Ashvin Hamzah Driwantara
on 6 Jan 2017
6 Comments
Stephen23
on 6 Jan 2017
Edited: Stephen23
on 7 Jan 2017
@Ashvin Hamzah Driwantara: your explanation is not clear. If each block does not generate one value, then you will need to explain in more detail, and provide input and output sample matrices so that we can test code. Until you provide a clear explanation of what you want there is nothing more that I can do for you.
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!