Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Return only odd elements

This is my first attempt to learn Matlab and I am trying some homework which is evaluated by a p file. I think my function is correct but I keep getting a negative feedback from the automatic feedback which evaluate the function

(Feedback: Your function made an error for argument(s) [1 2 3;4 5 6;7 8 9])

Problem:

Write a function called odd_index that takes a matrix, M, as input argument and returns a matrix that contains only those elements of M that are in odd rows and columns. In other words, it would return the elements of M at indices (1,1), (1,3), (1,5), ..., (3,1), (3,3), (3,5), ..., etc. Note that both the row and the column of an element must be odd to be included in the output. The following would not be returned: (1,2), (2,1), (2,2) because either the row or the column or both are even. As an example, if M were a 5-by-8 matrix, then the output must be 3-by-4 because the function omits rows 2 and 4 of M and it also omits columns 2, 4, 6, and 8 of M.

This is the function I wrote:

function odd_index
M=[1:5; 6:10; 11:15; 16:20; 21:25];
M=M(1:2:end, 1:2:end);
M
end

Any suggestion about what I am doing wrong here will be appreciated.

like image 562
FeliceM Avatar asked Jun 17 '26 09:06

FeliceM


1 Answers

Your function needs to take in a matrix M as an input argument:

function M_out = odd_index(M)
    M_out = M(1:2:end, 1:2:end);
end

That way, the 'p file' can test it for various inputs.

like image 154
MattG Avatar answered Jun 20 '26 19:06

MattG