MATLAB Answers

0

Can somebody explain me this answer?

Asked by Marko Kosijer on 9 Sep 2019
Latest activity Answered by Marko Kosijer on 9 Sep 2019

a=[1 2; 3 4]; a(3*ones(2)) ans= 2 2 2 2

  0 Comments

Sign in to comment.

Tags

4 Answers

Answer by madhan ravi
on 9 Sep 2019
 Accepted Answer

The code copies the third element of a as 2 by 2 matrix, see the below example:
>> a
a =
1 2
3 4
>> a(:)
ans =
1
3
2
4
>> a([3,3;3,3])
ans =
2 2
2 2
>>

  0 Comments

Sign in to comment.


Answer by James Tursa
on 9 Sep 2019
Edited by James Tursa
on 9 Sep 2019

You are using linear indexing into "a". This matrix:
>> 3*ones(2)
ans =
3 3
3 3
When used as indexing, it means "create a 2x2 matrix result, and put the 3rd element of "a" into that matrix result at each spot". Since the 3rd element of "a" in memory is the value 2, you get a 2x2 matrix of all 2's as your answer.

  0 Comments

Sign in to comment.


Answer by Bob Nbob
on 9 Sep 2019

a=[1 2; 3 4]; % Dictates a matrix, 'a,' and it values. Is a 2x2 matrix
a(3*ones(2)) % Calls the elements of 'a' which are located at 3*a 2x2 matrix of ones.
ans= 2 2 2 2 % This answer is returned because a(3) is the element in the first row, second column, a 2, and all four elements of the ones matrix will call the same element of 'a.'

  0 Comments

Sign in to comment.


Answer by Marko Kosijer on 9 Sep 2019

thank you so much guys!

  0 Comments

Sign in to comment.