Използвайки MATLAB, имам масив от стойности с размер 8 реда x N колони. Трябва да създам матрица със същия размер, която отчита максималните стойности във всяка колона и поставя 1 в клетката, която съдържа максимална стойност, и 0 другаде.
Малък пример. Да предположим, че имаме масив от стойности D:
D =
0.0088358 0.0040346 0.40276 0.0053221
0.017503 0.011966 0.015095 0.017383
0.14337 0.38608 0.16509 0.15763
0.27546 0.25433 0.2764 0.28442
0.01629 0.0060465 0.0082339 0.0099775
0.034521 0.01196 0.016289 0.021012
0.12632 0.13339 0.11113 0.10288
0.3777 0.19219 0.005005 0.40137
Тогава изходната матрица за такава матрица D ще бъде:
0 0 1 0
0 0 0 0
0 1 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
1 0 0 1
Има ли начин да го направите, без да хванете вектор от индекси от функцията max
и след това да ги поставите на правилното място, като използвате цикъл for?