Need command help for a specific matrix operation
1 view (last 30 days)
Show older comments
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.
0 Comments
Answers (3)
Richard Brown
on 3 May 2012
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 Comments
Geoff
on 3 May 2012
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!
Walter Roberson
on 3 May 2012
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.
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!