indexing string in function

I have a function that i want to return the first and last word from a string. so for example firstAndLast('matlab') should give me (m,b), however i am only able to get the first letter from this function?
function [first,last] = firstAndLast(instring)
first=instring(1);
last=instring(length(instring));
end

6 Comments

Stephen23
Stephen23 on 5 May 2016
Edited: Stephen23 on 5 May 2016
Your question is not clear: you write that you "want to return the first and last word from a string", but then your example seems to return the first and last letters: "firstAndLast('matlab') should give me (m,b)"
Which do you really want: the letters (like your example), or the words (like your explanation) ?
opps sorry, to clarify i would enter the word and input it as a string in the function. Therefore i would like to extract the first and last input of the string.
What does "extract the first and last input of the string" mean ?
Do you want the first and last letters, or words ?
letters
Stephen23
Stephen23 on 5 May 2016
Edited: Stephen23 on 5 May 2016
This is what your code does: I suspect that the problem is that were calling your function with only one output, instead of the two that it requires. In any case, in my answer I gave you a simpler way of doing this.
Thank you very much :) , turns out calling it was the problem.

Sign in to comment.

 Accepted Answer

Stephen23
Stephen23 on 5 May 2016
Edited: Stephen23 on 5 May 2016
Words
>> C = regexp('the quick brown fox','\S+','match');
>> C([1,end])
ans =
'the' 'fox'
Letters
>> fun = @(s)s([1,end]);
>> fun('matlab')
ans =
mb

More Answers (0)

Categories

Asked:

on 5 May 2016

Commented:

on 5 May 2016

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!