matlab 将每一列最大值变成1,其余变成0
时间: 2024-03-26 09:40:15 浏览: 183
可以使用下面的代码实现:
```matlab
% 生成一个 5 行 3 列的随机矩阵
A = rand(5, 3);
% 每一列最大值变成1,其余变成0
[max_val, max_idx] = max(A);
A = zeros(size(A));
for i = 1:size(A, 2)
A(max_idx(i), i) = 1;
end
```
代码解释:
1. 首先生成一个 5 行 3 列的随机矩阵 `A`。
2. 使用 `max` 函数找到每一列的最大值和最大值所在的行号。
3. 将 `A` 中所有元素赋值为0。
4. 使用 `for` 循环,将每一列最大值所在的行赋值为1。
阅读全文