MATLAB Answers

Matrix define using for loop

1 view (last 30 days)
mathru
mathru on 27 Jul 2020
Commented: KSSV on 27 Jul 2020
How to define the following matrix (penta diagonal) using for loop?
  2 Comments
mathru
mathru on 27 Jul 2020
In this matrix, the diagonal value is -4. But for a generalized form of this matrix, I have to use an expression "1/(i*dr)" where dr is the increment along x direction. That's why I need to use for loop.

Sign in to comment.

Accepted Answer

KSSV
KSSV on 27 Jul 2020
Read about diag.
A = -4*ones(9,1) ;
B = [1 1 0 1 1 0 1 1] ;
C = ones(1,6) ;
iwant = diag(C,-3)+ diag(B,-1) + diag(A) +diag(B,1) + diag(C,3)
  2 Comments
KSSV
KSSV on 27 Jul 2020
You can proceed like this:
% define the constants
F0 = rand ;
S = rand ;
dr = 1 ;
%
A = (2+4*F0)*ones(1,9) ;
B = F0*ones(8,1) ; B(3:3:end) = 0 ;
id = [2 2 2 3 3 3 ] ;
C = -F0-S./(dr*id) ;
id = [3 3 3 4 4 4 ] ;
D = -F0+S./(dr*id) ;
iwant = diag(D,-3)+diag(B,-1)+diag(A)+diag(B,1)+diag(C,3) ;

Sign in to comment.

More Answers (0)

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!