how to make the numbers on the matrix with alternative sign?
2 views (last 30 days)
Show older comments
I want to create a matrix that the main diagonal of K are alternatively 2 and -2’s, the sub- and sup-diagonal of K alternatively 1 and -1’s, and everywhere else 0. The size of K is 2n by 2n.
Here is what I got so far.
x=ones(1,5);
y=ones(1,4);
x2=2*x;
y2=y*-1;
z=diag(x2,0)
[rows, columns] = size(z)
z(1:2*rows+2:end) = -z(1:2*rows+2:end)
b=diag(y2,+1)
d=diag(y2,-1)
g=z+b+d
0 Comments
Answers (2)
praguna manvi
on 9 Aug 2024
Please use the code below to generate a matrix with alternating signs.
% Define the size of the matrix
n = 5; % Example value, you can change this
sizeK = 2 * n;
% Initialize the matrix K with zeros
K = zeros(sizeK);
% Fill the main diagonal with alternating 2 and -2
for i = 1:sizeK
if mod(i, 2) == 1
K(i, i) = 2;
else
K(i, i) = -2;
end
end
% Fill the super-diagonal and sub-diagonal with alternating 1 and -1
for i = 1:sizeK-1
if mod(i, 2) == 1
K(i, i+1) = 1;
K(i+1, i) = 1;
else
K(i, i+1) = -1;
K(i+1, i) = -1;
end
end
% Display the matrix K
disp(K);
0 Comments
See Also
Categories
Find more on Operating on Diagonal Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!