假设你有一个4x4的零矩阵A:
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
Run Code Online (Sandbox Code Playgroud)
和一个4x1向量B,表示矩阵A的列索引(所以值[1:4])
4
2
3
1
Run Code Online (Sandbox Code Playgroud)
现在我想在向量B的每一行的索引上增加矩阵A中的列位置.我自己尝试了几个结构但是不能完全设法做到这一点.
例如我试过:
A(:, B) = A(:, B)+1
Run Code Online (Sandbox Code Playgroud)
这只是增加A中的每个元素.
这就是我希望操作行为的方式:
>> A(somethting(B)) = A(somethting(B)) + 1
0 0 0 1
0 1 0 0
0 0 1 0
1 0 0 0
Run Code Online (Sandbox Code Playgroud)
您可以通过对要解决的每个元素使用线性索引来完成此操作.使用sub2ind以下方法计算:
>> A = zeros(4)
A =
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
>> B = [4 2 3 1]
B =
4 2 3 1
>> i=sub2ind(size(A),B,1:4)
i =
4 6 11 13
>> A(i) = A(i)+1
A =
0 0 0 1
0 1 0 0
0 0 1 0
1 0 0 0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
598 次 |
| 最近记录: |