how to put an array into a matrix

2 visualizzazioni (ultimi 30 giorni)
Hi there!
the function "triu(X,1)" returns the upper trangular part of the matrix X. I now have an array of size 1-by-(0.5*n*(n-1)), exactly the number of elements in the upper triangular. How can I, without using any loop, put this array into a n-by-n matrix so that this matrix is what triu(X,1) returns?
Thanks. Lianovich

Risposta accettata

Walter Roberson
Walter Roberson il 10 Apr 2011
n = floor(sqrt(2*length(V)));
M = zeros(n);
M(logical(triu(ones(n),1))) = V;
  3 Commenti
Chien-Chia Huang
Chien-Chia Huang il 10 Apr 2011
Thanks Walter.
But when I tried to put [1 2 3] into a 3-by-3 square matrix, the error message occured:
??? In an assignment A(I) = B, the number of elements in B and
I must be the same.
Error in ==> arraytomatrix at 9
M(logical(triu(ones(n),1))) = V;
Guess I must have mistaken what you meant.
What should the V be?
Chien-Chia Huang
Chien-Chia Huang il 10 Apr 2011
Yup, Matt is right.
Thanks, Matt.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Creating and Concatenating 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