How to write a function that returns the element that is the center of a vector or matrix?
Mostrar comentarios más antiguos
how do I start writing a function to do this? I have an idea how to write a script, but not as a function.
example:
123
458
112
ans=[2;5;1]
or
1233
ans=[2,3]
4 comentarios
Azzi Abdelmalek
el 17 de Abr. de 2014
What is 1233? double or string?
Kimberly
el 17 de Abr. de 2014
Sven
el 17 de Abr. de 2014
I think Azzi's question was just because the way you wrote the input:
[1 2 3 3]
is a row-vector, however:
[1223]
is just a number
Kimberly
el 17 de Abr. de 2014
Respuesta aceptada
Más respuestas (1)
Hi Kimberly, try this:
% Set up some input
x = [1 2 3
4 5 8
1 1 2]
% Grab the middle column(s)
xMidVal = (size(x,2)+1) / 2;
midInds = unique([floor(xMidVal) ceil(xMidVal)]);
out = x(:,midInds)
Did that answer the question for you?
4 comentarios
Kimberly
el 19 de Abr. de 2014
Sven
el 20 de Abr. de 2014
Kimberly, this answer will only return decimals (into the variable I have called out) if the input (in variable x) contains decimals. You can just copy into MATLAB and see that it returns exactly what you're looking for:
out =
2
5
1
It works similarly when you set x = [1 2 3 3]:
out =
2 3
Star Strider
el 21 de Abr. de 2014
My sympathies, Sven.
Sven
el 21 de Abr. de 2014
Ha, thanks SS :)
Kimberley, you are receiving quite detailed answers from Geoff who has (kindly) devoted time to helping you. I think that an hour or so reading some of the getting started guide will also be of much benefit. Two topics: Matrices and arrays and Programming and scripts would be great places to start.
Categorías
Más información sobre Matrices and Arrays en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!