max and min value of matrix
9 次查看(过去 30 天)
显示 更早的评论
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 个评论
Stephen23
2017-1-6
@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.
采纳的回答
Stephen23
2017-1-6
编辑:Stephen23
2017-1-6
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 个评论
Stephen23
2017-1-6
@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(:))
更多回答(4 个)
Ashvin Hamzah Driwantara
2017-1-6
6 个评论
Stephen23
2017-1-6
编辑:Stephen23
2017-1-7
@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.
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!