如何在矩阵的中间输入值

时间:2017-10-11 22:14:11

标签: matlab function matrix

我试图在不使用mod或disp的情况下将值放在矩阵n * n(n是正奇数整数)的中间 目前我有这个代码与mod和disp

function [] = centerzero(n)
 v=zeros(n,n);
 a=length(v);
 b=(size(v,2)+1)/2;
  if mod(a,2)==1
     v(b,b)=n;
     disp(v);

  end
end

如何输出向量(矩阵中的中间值等于n)? 我是否必须使用for-loops或者是他们的另一种方法呢?

2 个答案:

答案 0 :(得分:3)

实现你想要的一个简单的功能是

function a = centerzero(n)
    a = zeros(n,n);
    m = floor((n+1)/2);
    a(m,m) = n;
end

并使用

>> centerzero(5)

ans =

     0     0     0     0     0
     0     0     0     0     0
     0     0     5     0     0
     0     0     0     0     0
     0     0     0     0     0

答案 1 :(得分:0)

  对不起,但我忘了提到我不想使用地板或   ceil函数--TheBOI

从Chris的回答中删除地板功能。如果输入5.5之类的东西,它只会让事情变得混乱。您还可以将模数2检入重新加入,以确保您的价值不均匀。