我试图在不使用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或者是他们的另一种方法呢?
答案 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检入重新加入,以确保您的价值不均匀。