我怎么能避免for循环在这种情况下?

1视图(30天)
Dror Aizik
Dror Aizik 2020年5月12日
评论道: Dror Aizik2020年5月12日
a_matrix = 0 (10、4);
= [3 6 7 8]';
i = 1:元素个数(a)
a_matrix((我),我)= 1;
结束
disp (a_matrix)
0 0 0 0
0 0 0 0
1 0 0 0
0 0 0 0
0 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
0 0 0 0
0 0 0 0

接受的答案

Stephen23
Stephen23 2020年5月12日
编辑:Stephen23 2020年5月12日
方法一:逻辑等于:
> > = (3、6、7、8);
> > V = 1:10;
双(V (:) > > M = = =)%需要MATLAB > = R2016b
M =
0 0 0 0
0 0 0 0
1 0 0 0
0 0 0 0
0 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
0 0 0 0
0 0 0 0
早些时候,MATLAB版本替换 = = bsxfun
方法二: sub2ind :
> > M = 0 (10、4);
> > X = sub2ind(大小(M)、一个1:4);
> > M (X) = 1
M =
0 0 0 0
0 0 0 0
1 0 0 0
0 0 0 0
0 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
0 0 0 0
0 0 0 0

更多的答案(0)

类别

找到更多的在循环和条件语句帮助中心文件交换

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!