在中间创建编号为1的5x5矩阵

时间:2013-09-22 01:36:18

标签: matlab

我需要在中间创建一个数字为1的5x5矩阵。我不允许明确输入元素。

我正在使用这个,

repmat(eye(5),1)

提供

 1     0     0     0     0
 0     1     0     0     0
 0     0     1     0     0
 0     0     0     1     0
 0     0     0     0     1

我如何摆脱不在中间的那个?

3 个答案:

答案 0 :(得分:6)

另一个班轮:

padarray(1,[2 2])

答案 1 :(得分:4)

虽然我没有明白这个问题,但有很多选择,想到奇怪的问题很有趣: - )

  • 通过旋转矩阵乘以元素:A = eye(5); A = A.*rot90(A)
  • 通过翻转矩阵按元素乘以:A = eye(5); A = A.*flipud(A)
  • A = A + flipud(A); A = A==max(A(:))
  • A = zeros(5); ind = ceil(numel(A)/2); A(ind) = ~A(ind)
  • A = magic(5); A = A==sum(A(:,1))/size(A,1)

答案 2 :(得分:4)

添加到Luis's answer,滥用图片处理工具箱的方法:

>> fspecial('gauss',[5 5], eps)

我敢打赌Gauss不会喜欢......

您也可以使用线性索引

>> A = reshape( 1:25, [5 5] ) == 13;