请教一下大家,这种情况应该怎么处理啊?
mathematica吧
全部回复
仅看楼主
level 9
假如A={3,2,4,1}分别表示对B矩阵的第一行前3个数加一,对B矩阵第二行的前2个数加一,对B矩阵第三行前4个数加一,对B矩阵第四行的第1个数加一
我想用Do循环来着
Do[C[[i,j]]=B[[i,j]]+1,{i,4},{j,A[[i]]}],然后mma告诉我现在i不能作为部分指定使用,{j,A[[i]]}没有适当的边界。那这种情况大家有什么好的解决办法吗?
2023年03月20日 02点03分 1
level 7
A={3,2,4,1};
B=Table[a,{4},{4}];
MapIndexed[
#+If[#
2[[2]]>A[[#2[[1]]]],0,1]&,B,{2}]//MatrixForm
2023年03月20日 11点03分 3
很简洁[真棒][真棒][真棒],谢谢你!
2023年03月21日 02点03分
吧务
level 15
一个类似的思路:
2023年04月01日 04点04分 4
嗯嗯,主要就是我之前没接触过MapIndex,对它不了解,不知道还有这种函数[笑尿]
2023年04月01日 05点04分
吧务
level 12
A = {3, 2, 4, 1};
Amat = PadRight[Table[1, #], 4] & /@ A;
B = Table[a, {4}, {4}];
B + Amat // MatrixForm
2023年04月01日 07点04分 5
1