Pon*_*oni 2 matlab matrix octave matrix-multiplication
我有一个矢量 y = [0; 2; 4]
我想将它的每个元素转换为向量,其中所有元素都为零,但索引等于数字的元素为1.
我想在没有循环的情况下这样做.
例如[0; 2; 4]应该转换为
[1 0 0 0 0 0 0 0 0 0;
0 0 1 0 0 0 0 0 0 0;
0 0 0 0 1 0 0 0 0 0]
Run Code Online (Sandbox Code Playgroud)
(在此示例中,向量第一个索引为0)
通常的技巧sparse可用于简化过程.设n表示所需的列数.然后
result = full(sparse(1:numel(y), y+1, 1, numel(y), n));
Run Code Online (Sandbox Code Playgroud)
例如,y = [0;2;4]和10产生
result =
1 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1946 次 |
| 最近记录: |