我想在MATLAB中创建一个矩阵(n乘n,n为奇数),该矩阵的中心元素固定,周围的元素以某个恒定值递增/递减。例如:
其中我的中心元素为0,周围的元素递减0.1。我从何处开始完全空白。非常感谢您的时间和帮助。
此替代方法似乎比for
循环快一点。
n = 7; % size
vector = -abs((1-n)/2:(n-1)/2)/10; % entries in middle row/column
x = min(vector,vector.') % final result
,
% works for only odd numbers as your requirement
n = 5; % matrix size
r = (n-1)/2; % surrounding rows
x = zeros(n); % array initialization
c = r-1:-1:0;
% assigning values
for i = 1:r
x([1+c(i),end-c(i)],:) = -i/10;
x(:,[1+c(i),end-c(i)]) = -i/10;
end
x % final matrix