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
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!