matlab中如何给一个矩阵中的某几个特定位置赋值
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/20 20:18:27
matlab中如何给一个矩阵中的某几个特定位置赋值
比如说我有一个矩阵:a = zeros(5);
还有两列向量:i = [2;3;4]; j = [1;4;2];
想使得a(i(k),j(k))=1,也就是说让a的第2行第1列、第3行第4列、第4行第2列这三个位置上的元素等于1.
不用循环,也不通过转稀疏矩阵,最好只用一条语句来实现.
比如说我有一个矩阵:a = zeros(5);
还有两列向量:i = [2;3;4]; j = [1;4;2];
想使得a(i(k),j(k))=1,也就是说让a的第2行第1列、第3行第4列、第4行第2列这三个位置上的元素等于1.
不用循环,也不通过转稀疏矩阵,最好只用一条语句来实现.
用sub2ind
>> a=zeros(5); i = [2;3;4]; j = [1;4;2];
>> a(sub2ind(size(a),i,j))=1
a =
0 0 0 0 0
1 0 0 0 0
0 0 0 1 0
0 1 0 0 0
0 0 0 0 0
hokvens:这个正是matlab的精髓,matlab里面很多东西都不需要循环来完成,速度快而且语句简单
>> a=zeros(5); i = [2;3;4]; j = [1;4;2];
>> a(sub2ind(size(a),i,j))=1
a =
0 0 0 0 0
1 0 0 0 0
0 0 0 1 0
0 1 0 0 0
0 0 0 0 0
hokvens:这个正是matlab的精髓,matlab里面很多东西都不需要循环来完成,速度快而且语句简单