How to write a function that returns the element that is the center of a vector or matrix?
Afficher commentaires plus anciens
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 commentaires
Azzi Abdelmalek
le 17 Avr 2014
What is 1233? double or string?
Kimberly
le 17 Avr 2014
Sven
le 17 Avr 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
le 17 Avr 2014
Réponse acceptée
Plus de réponses (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 commentaires
Kimberly
le 19 Avr 2014
Sven
le 20 Avr 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
le 21 Avr 2014
My sympathies, Sven.
Sven
le 21 Avr 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.
Catégories
En savoir plus sur Creating and Concatenating Matrices dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!