我有一个逻辑 1×n 向量,总和为 m。现在,我需要将其转换为 m×n 矩阵,使行总和等于 1。
vector (1-by-8) with sum 4
[0 1 0 0 1 0 1 1]
matrix (4-by-8) with row sum 1
[0 1 0 0 0 0 0 0;
0 0 0 0 1 0 0 0;
0 0 0 0 0 0 1 0;
0 0 0 0 0 0 0 1]
是否有一种数学上有效的方法,无需计算总和、创建空矩阵、循环向量并逐行添加 1?
最佳答案
我认为在这种情况下,根据您的输入,您甚至不需要计算总和。 您可以定义大小为 n 的单位矩阵,然后使用输入向量从中采样所需的行:
I = eye(n);
y = I(x, :) ; % Output Matrix. x is the input vector
关于matlab - 向量到行总和为 1 的矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52567588/