How to index an output without creating intermediate variable?
4 次查看(过去 30 天)
显示 更早的评论
Hi,
what keeps frustrating me about Matlab - or my lack of Matlab skills that is..
How do I do this more nicely
tmp = get(gca, 'YLim');
set(gca, 'YLim', [0, tmp(2)]);
clear tmp;
% I would imagine something like this:
set(gca, 'YLim', [0, get(gca, 'YLim'){2}]);
It's not about this specific example, it's about how to avoid having to create a temporary variable in order to index the output. I could come up with a ton of other examples that have crossed my projects over the years.
here's another example which is obviously dumbed down. The idx will not be hardcoded obviously
CellWithStuff = {'one', 'two', 'three', 'four'};
tmp = contains(CellWithStuff, 'o');
OutputIWant = tmp(1);
% what I'm looking for is replacing
contains(CellWithStuff, 'o')[1] % accessing the first entry of the output somehow simpler...
I'm not a professional developer, so maybe there is an obvious solution to something like this.
I'd appreciate any suggestions!
Arnold
2 个评论
James Tursa
2020-11-19
MATLAB doesn't support this capability natively, so the only thing you can do is live with it or use klunky workaround code.
回答(1 个)
David Hill
2020-11-19
编辑:David Hill
2020-11-19
CellWithStuff{find(contains(CellWithStuff,'o'),1)};
CellWithStuff(find(contains(CellWithStuff,'o'),1));%depending on what you want
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!