Azzera filtri
Azzera filtri

Constructing a matrix from several diagonal matrixes (the code is included)

1 visualizzazione (ultimi 30 giorni)
Hi
I'm trying to construct a matrix from 5 diagonal matrixes that are repriceted as M (see code below). The first M I get is [0 0 0; 0 0 0; 1 0 0] Second M is [0 0 0; 6 0 0; 0 3 0] Third M is [4.667 0 0; 0 4.6667 0; 0 0 1.667] Fourth M is [0 5.5 0; 0 0 5.5; 0 0 0] Fifth M is [0 0 4; 0 0 0; 0 0 0]
The matrix I'm tryging is made from these 5 M matrices made. I trying to take the values that are larger then zero from these 5 M matrices and construct one matrix or [4.6667 5.5 4; 6 4.6667 5.5; 1 3 1.6667]. But I don't know know to do that. Can you please help me?
NOTE: That I've improved the question a bit, I hope it helps to explain what I'm trying to do.
close all; clear all; clc;
A=[5 5 5; 5 5 5; 2 2 2];
B=[-1 2 -1 1 -1];
[x,y] = size(A);
[x1,y1] = size(B);
T = ones(x,y);
M0 = ones(x,y);
c = x-1;
v = -c:1:c;
ii = 1;
for vv = min(v):max(v)
sumd(ii) = sum(diag(M0,vv));
ii = ii+1;
end
differance = B./sumd
a = 1;
for dd = min(v):max(v)
Mcal = (diag(A,dd)+differance(a));
[x2,y2]=size(Mcal);
M = diag(Mcal,dd) %diagnonal matrices
a=a+1;
end
  4 Commenti
Matt Fig
Matt Fig il 20 Set 2012
Modificato: Matt Fig il 20 Set 2012
Lilja, what are the 5 diagonal matrices? I only see A and B, and others made from them. Please be more specific in your questions.
Azzi Abdelmalek
Azzi Abdelmalek il 20 Set 2012
Modificato: Azzi Abdelmalek il 20 Set 2012
I still didn't understand how to construct M from M1,M2,... you did'nt tell anything about it

Accedi per commentare.

Risposta accettata

Matt Fig
Matt Fig il 20 Set 2012
Modificato: Matt Fig il 20 Set 2012
Replace your second loop with this:
M = zeros(size(A));
for dd = min(v):max(v)
Mcal = (diag(A,dd)+differance(a));
[x2,y2]=size(Mcal);
M = M + diag(Mcal,dd);
a=a+1;
end
M
That at least gives you your M. Now you can start improving the code efficiency-wise.

Più risposte (0)

Categorie

Scopri di più su Operating on Diagonal Matrices in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by