How to find the middle element of a square array

69 vues (au cours des 30 derniers jours)
Kevin Carty
Kevin Carty le 12 Mar 2020
function middleElement = FindMiddle(squareArray)
% FindMiddle: Return the element in the center of squareArray
% Inputs: squareArray - n x n input array, where n is odd
%
% Outputs: selectedData - center element of squareArray
% Assign elementIndex with location of middle row/col
% Hint: Use the size() function to deterimine the dimension of squareArray
elementIndex = size(squareArray)
% Assign middleElement with the center element of squareArray
middleElement = squareArray(elementIndex)
end
How do I start this? I figure I would have to set the elementIndex to an integer but I don't know how to do that. Any guidance would be appreciated.

Réponses (4)

Bhaskar R
Bhaskar R le 12 Mar 2020
Modifié(e) : Bhaskar R le 12 Mar 2020
function middleElement = FindMiddle(squareArray)
% FindMiddle: Return the element in the center of squareArray
% Inputs: squareArray - n x n input array, where n is odd
%
% Outputs: selectedData - center element of squareArray
% Assign elementIndex with location of middle row/col
% Hint: Use the size() function to deterimine the dimension of squareArray
center_ind = (size(squareArray)+1)/2;
% Assign middleElement with the center element of squareArray
middleElement = squareArray(center_ind(1), center_ind(2))
end
  2 commentaires
Kevin Carty
Kevin Carty le 12 Mar 2020
Can you explain why you did +1 to the size?
Walter Roberson
Walter Roberson le 12 Mar 2020
N is odd. If you divide it by 2 you will get a leftover 1/2, but you cannot use 1/2 as an index.
Example: n=7. 7/2=3.5 but you cannot use 3.5 as an index. What is the proper index?
1234567
!
The ! has the same number of elements before and after so the index of the center is 4.
Now take (7+1)/2 and you get 4 which is the correct index. This can also be thought of as 7/2 + 1/2 = 3.5+.5 = 4: just group the operation differently, 7/2+1/2 times 2 is 7 + 1, so divide by the 2 is (7+1)/2

Connectez-vous pour commenter.


Jada Roth
Jada Roth le 10 Sep 2020
function middleElement = FindMiddle(squareArray)
% FindMiddle: Return the element in the center of squareArray
% Inputs: squareArray - n x n input array, where n is odd
%
% Outputs: selectedData - center element of squareArray
% Assign elementIndex with location of middle row/col
% Hint: Use the size() function to deterimine the dimension of squareArray
elementIndex = ceil(size(squareArray)/2);
% Assign middleElement with the center element of squareArray
middleElement = squareArray(elementIndex(1),elementIndex(2));
end

Piyush Lakhani
Piyush Lakhani le 12 Mar 2020
Hi Kevin,
The 'size' function returns the two element array 'row and column'. As what i can understand you want a single value that determines the variable 'n'.
so may be 'length' function gives the output you wants. Try in following way.
function middleElement = FindMiddle(squareArray)
% FindMiddle: Return the element in the center of squareArray
% Inputs: squareArray - n x n input array, where n is odd
%
% Outputs: selectedData - center element of squareArray
% Assign elementIndex with location of middle row/col
% Hint: Use the size() function to deterimine the dimension of squareArray
elementIndex = length(squareArray)
% Assign middleElement with the center element of squareArray
middleElement = squareArray(elementIndex)
end

Anthony Olivares
Anthony Olivares le 21 Jan 2022
Here is what I did:
function middleElement = FindMiddle(squareArray)
% FindMiddle: Return the element in the center of squareArray
% Inputs: squareArray - n x n input array, where n is odd
%
% Outputs: selectedData - center element of squareArray
% Assign elementIndex with location of middle row/col
% Hint: Use the size() function to deterimine the dimension of squareArray
% Here I used the size() function to obtain a row vector with the
% dimensions of squareArray. Therefore, this would return [3, 3] for a
% 3x3 array.
elementIndex = (size(squareArray) + 1) / 2;
% Assign middleElement with the center element of squareArray
% Here, we simply plug in the values of the row vector obtained with
% the size() function to get the middle element in an odd 2D array.
middleElement = squareArray(elementIndex(1), elementIndex(2));
end
If we were to run FindMiddle([1, 2, 3; 4, 5, 6; 7, 8, 9]) :
  • elementIndex would return [3, 3], since it is a 3x3 array.
  • Therefore, squareArray(elementIndex(1), elementIndex(2)); would return a 5, since squareArray(3, 3) is 5.

Catégories

En savoir plus sur Matrices and Arrays 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