How do I get the last element of a cell array from a function call?
28 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Elizabeth Cisneros
le 15 Juil 2018
Commenté : Image Analyst
le 16 Juil 2018
Say I am making a function call to a function that needs an index as one of its arguments, however, in this case, I only want the last element of the cell array. So far I have this:
twin_start = boundary_times(df,steplists,stepIdx,full_step_str,end);
using end as an argument, but I know you can't use end like that. Is there something I can do to indicate that I want the last element of the cell array when making a function call? Thank you :)
2 commentaires
Rik
le 15 Juil 2018
You mean you want only the last element of your output array? I have no idea what kind of input boundary_times is expecting, so I can't tell if you should use some call to numel or something totally different.
Réponse acceptée
Stephen23
le 15 Juil 2018
Modifié(e) : Stephen23
le 15 Juil 2018
Write the function to accept a special case, e.g. an empty array indicates end:
if isempty(location)
step_BoundaryT = twinSplit{end};
else
step_BoundaryT = twinSplit{location};
end
and then call it like this:
boundary_times(...,[]);
2 commentaires
Image Analyst
le 16 Juil 2018
Well changing the function was what I suggested to you in my earlier answer, but you said "I wouldn't want to hardcode it though because I use this function for other purposes". Glad to see you changed your mind. Obviously if nothing changes in your code (or input data), then nothing will change in the results.
Plus de réponses (1)
Image Analyst
le 15 Juil 2018
Try this:
% Put contents of last cell of the twinSplit cell array into step_BoundaryT
step_BoundaryT = twinSplit{end};
Voir également
Catégories
En savoir plus sur Matrix Indexing dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!