필터 지우기
필터 지우기

Need command help for a specific matrix operation

조회 수: 1 (최근 30일)
Surjya padhi
Surjya padhi 2012년 5월 3일
hi,
I need the command help to do the following. Situation.
A = [2 3 4;7 8 1;3 2 7;1 9 3];
I want to square this matrix and then want to save the 2nd and 3rd row of the result matrix(4x3) matrix to another matrix of 2x3 dimension. I can do like this
B = A.^2; C = B(2:3,:); now C contains my required result.
But I want to avoid the intermediate step of first saving it in matrix B above. I want the C matrix directly from A. I need a single line command for above two statements.
I tried like following C = (A.^2)(2:3,:); But it is showing syntax error.
Please help me in this.

답변 (3개)

Richard Brown
Richard Brown 2012년 5월 3일
EDIT Needed to strain my eyes harder to figure out that the matrix in question had 4 rows
C = [0 1 0 0; 0 0 1 0] * A.^2;
  댓글 수: 3
Geoff
Geoff 2012년 5월 3일
Don't blame you for mistaking that. The use of whitespace in computer languages is just as important as in human languages, even if it's not strictly necessary. I love languages like Python that recognise this and actually make whitespace part of the syntax!
Andrei Bobrov
Andrei Bobrov 2012년 5월 3일
+1

댓글을 달려면 로그인하십시오.


Andrei Bobrov
Andrei Bobrov 2012년 5월 3일

Walter Roberson
Walter Roberson 2012년 5월 3일
This is the official mechanism for the kind of indexing of results that you want to do:
subsref(A.^2, struct('type', '()', 'subs', {{2:3, ':'}}))
You can wrap the functionality into anonymous functions to make it look more compact.

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by