![]() |
在MATLAB中创建最大值索引矩阵
使用[URL="http://en.wikipedia.org/wiki/MATLAB"]MATLAB[/URL] ,我得到了一个大小为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循环将其放在正确的位置? [B]回答:[/B] 可能有更好的方法,我的第一种方法是: D = rand(8,4) [val, sub] = max(D) ind = sub2ind( size(D), sub, 1:4 ) res = false( size(D) ) res( ind ) = true [url=https://stackoverflow.com/questions/2081412]更多&回答...[/url] |
所有时间均为北京时间。现在的时间是 04:55。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.