Maxk gives an incorrect result
1 回表示 (過去 30 日間)
古いコメントを表示
Hi all,
I am trying to get 4 different value from a matrix. I am using maxk to find these values indices. Maxk can find first two maximum value with indices but when I try to find third it gives an incorrect result. for example when ı select row "1" it found 2 maximum value with their column in matrix and gives me 7-15 then I select 7 for my row it should needs to give me 8th column but it gives 1. I cannot understand why
Here is my code:
for i = nodes
if i == 1 [~,seed] = maxk(m(1:n),2);
end
end
s1 = seed(1,1);
s2 = seed(1,2);
for i = nodes
if i == 7 [~,seed2] = maxk(m(7,n),1);
end
end
0 件のコメント
採用された回答
Voss
2022 年 4 月 22 日
For the case that i == 1 you have:
maxk(m(1:n),2)
m(1:n)is the first n elements of m (going in column-major order, which is what MATLAB uses). For example:
m = magic(4)
n = 6;
m(1:n)
For the case that i == 7, you have:
maxk(m(7,n),2)
m(7,n) is the element(s) of m at row 7, column(s) n. If n is a scalar, that's one element. For example:
m = magic(7)
n = 6;
m(7,n)
If you want to use maxk on rows of m, then the syntax would be:
maxk(m(1,:),2) % using first row of m
maxk(m(7,:),2) % using 7th row of m
For example (using m as the 7x7 magic square still):
m(1,:)
m(7,:)
[~,seed] = maxk(m(1,:),2)
[~,seed2] = maxk(m(7,:),2)
6 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Matrix Indexing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!