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。
不用循环,也不通过转稀疏矩阵,最好只用一条语句来实现。
展开
 我来答
大野瘦子
高粉答主

2019-10-13 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:1227
采纳率:100%
帮助的人:33.9万
展开全部

用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 0 

a(2) = 6;   % 将矩阵a的第2个元素(按列开始计算)赋值为6

>>a = 

0 5 0 0

6 0 0 0

0 0 0 0 

a(3,:) = [1 2 3 4];   % 将矩阵a的第3行赋值为[1 2 3 4]

>>a = 

0 5 0 0

6 0 0 0

1 2 3 4

   

有空飘过的
推荐于2017-10-11 · TA获得超过4945个赞
知道大有可为答主
回答量:1448
采纳率:50%
帮助的人:1866万
展开全部
用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里面很多东西都不需要循环来完成,速度快而且语句简单
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
du瓶邪
推荐于2017-09-06 · TA获得超过2.4万个赞
知道大有可为答主
回答量:1.7万
采纳率:100%
帮助的人:2904万
展开全部
比如:
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
星期一小新
2009-11-18 · TA获得超过1010个赞
知道小有建树答主
回答量:363
采纳率:0%
帮助的人:451万
展开全部
直接赋值不行吗?
a(2,1)=1;a(3,4)=1;a(4,2)=1;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
鲍馨有曜
2019-10-06 · TA获得超过3805个赞
知道大有可为答主
回答量:3132
采纳率:28%
帮助的人:223万
展开全部
用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里面很多东西都不需要循环来完成,速度快而且语句简单
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式