thank you! Found the solution! Thank you!

3 件のコメント

madhan ravi
madhan ravi 2019 年 4 月 7 日
findpeaks() ?
madhan ravi
madhan ravi 2019 年 4 月 7 日
So as I understand you want to find the max value for each 16 rows ???
madhan ravi
madhan ravi 2019 年 4 月 7 日
NO NO NO!!!!,Why did you delete all the contents of the question and the comments?, it's a terrible thing to do . Others may also benefit from the question.

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

 採用された回答

madhan ravi
madhan ravi 2019 年 4 月 7 日
編集済み: madhan ravi 2019 年 4 月 7 日

2 投票

See if this does what you want , first we split into 16 separate rows each and then we conquer in the third dimension:
[m,n]=size(A); % where A is your matrix of size 256 X 40K
parts = 16;
AA = permute(reshape(A.',n,m/parts,[]),[2,1,3]);
Max = max(AA,[],[1,2]); % max(max(AA)) for versions <= 2016b
[r,~]=find(AA == Max) % r represents rows

6 件のコメント

Anh Dao
Anh Dao 2019 年 4 月 7 日
編集済み: Anh Dao 2019 年 4 月 7 日
r,c seems to be wrong, I tried, and there seems to be problem with the split , the row appeared to be all 1, can you please check?
madhan ravi
madhan ravi 2019 年 4 月 7 日
編集済み: madhan ravi 2019 年 4 月 7 日
Could you illustrate with a short example? c gives you the linear index unlike r, what do you mean the split is wrong?
>> A = rand(8,2)
[m,n]=size(A);
parts = 2;
AA = permute(reshape(A.',n,m/parts,[]),[2,1,3]);
Max = max(AA,[],[1,2]);
[r,~]=find(AA == Max)
A =
0.6944 0.9400
0.3253 0.6584
0.4368 0.9652
0.7557 0.0311
0.4930 0.1461
0.7457 0.5300
0.8067 0.8428
0.9376 0.0922
r =
3
4
>>
Anh Dao
Anh Dao 2019 年 4 月 7 日
I've got this error Product of known dimensions, 40000, not divisible into total number of elements, 15.
madhan ravi
madhan ravi 2019 年 4 月 7 日
編集済み: madhan ravi 2019 年 4 月 7 日
256 is divisible by 16 where did you get 15 and why are you bothered with columns now?? We are focused on rows ?
[r,c,p]=ind2sub(size(AA),find(AA==Max)) % r represents rows , c represents columns & p represents pages
Post the code that your trying.
Anh Dao
Anh Dao 2019 年 4 月 7 日
Thank you, so I have a matrix A equal 256x40000
it was a mistake that I put in last time that i put parts = 15, sorry about that, so r should be correct right, what's the difference in the code you posted?
[m,n]=size(A)
parts = 16;
AA = permute(reshape(DoM.',n,m/parts,[]),[2,1,3]);
Max = max(AA,[],[1,2]);
[r,~]=find(AA == Max)
madhan ravi
madhan ravi 2019 年 4 月 7 日
replace
[r,~]=find(AA == Max)
with
[r,c,p]=ind2sub(size(AA),find(AA==Max)) % r represents rows , c represents columns & p represents pages

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

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File Exchange で Resizing and Reshaping Matrices についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by