how to put an array into a matrix

1 次查看(过去 30 天)
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

采纳的回答

Walter Roberson
Walter Roberson 2011-4-10
n = floor(sqrt(2*length(V)));
M = zeros(n);
M(logical(triu(ones(n),1))) = V;
  3 个评论
Chien-Chia Huang
Chien-Chia Huang 2011-4-10
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 2011-4-10
Yup, Matt is right.
Thanks, Matt.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by