필터 지우기
필터 지우기

how to put an array into a matrix

조회 수: 1 (최근 30일)
Chien-Chia Huang
Chien-Chia Huang 2011년 4월 10일
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