Assign value in a cell with a "oneliner"

1 view (last 30 days)
Hello Matlab folks,
I am trying to retrieve a cell and change some of its values with only one command line.
I have today :
>> x = {'a';'b';'c';'d';'e'};
>> x{2} = 'y';x{4} = 'z';
I am looking for something like:
>> UnknownFunction({'a';'b';'c';'d';'e'},2,'x',4,'z');
And because it is not funny otherwise, I can't create an UnknownFunction.m myself as I need to use only native Matlab function.
Any Idea ?
Thanks

Accepted Answer

madhan ravi
madhan ravi on 9 Aug 2019
[x{2},x{4}]=deal('x','z')
  4 Comments
madhan ravi
madhan ravi on 9 Aug 2019
Edited: madhan ravi on 9 Aug 2019
Thanks dpb , I thought so too until the OP commented xd:
subsref({'a';'b';'c';'d';'e'},substruct('{}',{2}))
% or you can use the below ones if the user made anonymous function is allowed
retriever = @(x,y) x(y);
% ^_^ - use {} if you want
retriever({'a';'b';'c';'d';'e'},2)
Florian Levy
Florian Levy on 9 Aug 2019
I actually just found the function that suits my need.
getcolumn({'a';'b';'c';'d';'e'}',[2 4])
Thanks.

Sign in to comment.

More Answers (0)

Categories

Find more on Data Type Conversion in Help Center and File Exchange

Products


Release

R2016b

Community Treasure Hunt

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

Start Hunting!