Effacer les filtres
Effacer les filtres

Can somebody explain me this answer?

1 vue (au cours des 30 derniers jours)
Marko Kosijer
Marko Kosijer le 9 Sep 2019
a=[1 2; 3 4]; a(3*ones(2)) ans= 2 2 2 2

Réponse acceptée

madhan ravi
madhan ravi le 9 Sep 2019
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
>>

Plus de réponses (3)

James Tursa
James Tursa le 9 Sep 2019
Modifié(e) : James Tursa le 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.

Bob Thompson
Bob Thompson le 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.'

Marko Kosijer
Marko Kosijer le 9 Sep 2019
thank you so much guys!

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by