creating a diagonal matrix?

Hi,
I want to create a diagonal matrix which has the elements like this: q1,q1,q2,q2,...,qm,qm
q is a function and has m different values for m different x-values
Could anyone help me please?
Thank you!

Réponses (3)

Simon
Simon le 12 Déc 2013

0 votes

Hi!
diag(q)

2 commentaires

FULYA  SEREF
FULYA SEREF le 12 Déc 2013
thank you very much but as you see I have the elements who are the same for two times. I suppose I need a loop. I can't enter these values by hand. Because first I will define the function q. I need m different values of q for m different x values. And I have to create a matrix whose diagonal is for example; q(1),q(1),q(2),q(2), ,....,q(m),q(m).
Simon
Simon le 13 Déc 2013
So, if you have your function q, what will be the output? Is it a m-element vector? Or just a scalar value?
If you have your m-element vector X, you can do
ind = 1:m;
ind = [ind; ind];
diag(X(ind(:)))
If you get scalars only you have to create it in a loop.

Connectez-vous pour commenter.

Sean de Wolski
Sean de Wolski le 12 Déc 2013

0 votes

diag(q(1,2,3))
And for more info:
doc diag

1 commentaire

FULYA  SEREF
FULYA SEREF le 12 Déc 2013
thank you very much but as you see I have the elements who are the same for two times. I suppose I need a loop. I can't enter these values by hand. Because first I will define the function q. I need m different values of q for m different x values. And I have to create a matrix whose diagonal is for example; q(1),q(1),q(2),q(2), ,....,q(m),q(m).

Connectez-vous pour commenter.

Jos (10584)
Jos (10584) le 13 Déc 2013

0 votes

Like this?
q = [10 20 30] ;
q = q(floor(1:.5:numel(q)+.5)) % expand (there are many other ways to do this!)
diag(q)

Catégories

Community Treasure Hunt

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

Start Hunting!

Translated by