How to find the middle element of a square array
    조회 수: 26 (최근 30일)
  
       이전 댓글 표시
    
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.
댓글 수: 0
답변 (4개)
  Bhaskar R
      
 2020년 3월 12일
        
      편집: Bhaskar R
      
 2020년 3월 12일
  
      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
  Walter Roberson
      
      
 2020년 3월 12일
				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
  Jada Roth
 2020년 9월 10일
        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
댓글 수: 0
  Piyush Lakhani
      
 2020년 3월 12일
        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
댓글 수: 0
  Anthony Olivares
 2022년 1월 21일
        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.
댓글 수: 0
참고 항목
카테고리
				Help Center 및 File Exchange에서 Assembly에 대해 자세히 알아보기
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!





