【发布时间】:2017-11-17 00:52:20
【问题描述】:
为了更好地解释我需要什么,这是我的第一个代码:
function allpos = f1(x)
allpos=reshape(permute((dec2base(0:power(2,x*x)-1,2)-'0'),[3 2 1]),x,x,[]);
这段代码完全符合我的需要。如果用户输入f1(2),它将返回从[0 0; 0 0] 到[1 1; 1 1] 的每个矩阵。但是,它也给了我很多无用的矩阵。我只想要在对角线上镜像的矩阵,对角线上只有零。
更简单地说,对于f1(3),我只想要
[0 0 0; 0 0 0; 0 0 0] 到 [0 1 1; 1 0 1; 1 1 0]。这意味着如果我运行新的f1(3);它将返回 8 个矩阵,而不是 512。
如何重写函数来做到这一点?我知道它需要某种形式的添加三角矩阵及其转置的自我,但我无法将它拼凑在一起。谢谢!
【问题讨论】: