matlab中如何给一个矩阵中的某几个特定位置赋值
比如说我有一个矩阵:a=zeros(5);还有两列向量:i=[2;3;4];j=[1;4;2];想使得a(i(k),j(k))=1,也就是说让a的第2行第1列、第3行第4...
比如说我有一个矩阵: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。
不用循环,也不通过转稀疏矩阵,最好只用一条语句来实现。 展开
还有两列向量:i = [2;3;4]; j = [1;4;2];
想使得a(i(k),j(k))=1,也就是说让a的第2行第1列、第3行第4列、第4行第2列这三个位置上的元素等于1。
不用循环,也不通过转稀疏矩阵,最好只用一条语句来实现。 展开
8个回答
展开全部
用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
扩展资料:
注意事项
MATLAB书写表达式的规则与“手写算式”差不多相同。
如果一个指令过长可以在结尾加上...(代表此行指 令与下一行连续),例如
?3*...
6
ans =
18
在matlab中,可通过如下方式给矩阵赋值:
a = zeros(3,4); % 初始化一个3*4的矩阵
>>a =
0 0 0 0
0 0 0 0
0 0 0 0
a(1,2) = 5; % 将矩阵a的第1行第2列个元素赋值为5>>a =
0 5 0 0
0 0 0 0
0 0 0 0a(2) = 6; % 将矩阵a的第2个元素(按列开始计算)赋值为6
>>a =
0 5 0 0
6 0 0 0
0 0 0 0a(3,:) = [1 2 3 4]; % 将矩阵a的第3行赋值为[1 2 3 4]
>>a =
0 5 0 0
6 0 0 0
1 2 3 4
展开全部
用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里面很多东西都不需要循环来完成,速度快而且语句简单
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
比如:
k1=[1,2;3,4];
K=zeros(4);
把k1的值赋在K的特定位置后,获得
K=[0,1,0,2;
0,0,0,0;
0,3,0,4;
0,0,0,0;]
K([1 3],[2 4]) = k1
k1=[1,2;3,4];
K=zeros(4);
把k1的值赋在K的特定位置后,获得
K=[0,1,0,2;
0,0,0,0;
0,3,0,4;
0,0,0,0;]
K([1 3],[2 4]) = k1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接赋值不行吗?
a(2,1)=1;a(3,4)=1;a(4,2)=1;
a(2,1)=1;a(3,4)=1;a(4,2)=1;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用sub2ind
>>a=zeros(5);i=[2;3;4];j=[1;4;2];
>>a(sub2ind(size(a),i,j))=1
a=
00000
10000
00010
01000
00000
hokvens:这个正是matlab的精髓,matlab里面很多东西都不需要循环来完成,速度快而且语句简单
>>a=zeros(5);i=[2;3;4];j=[1;4;2];
>>a(sub2ind(size(a),i,j))=1
a=
00000
10000
00010
01000
00000
hokvens:这个正是matlab的精髓,matlab里面很多东西都不需要循环来完成,速度快而且语句简单
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询