我想使用substruct
函数创建一个在subsref
中使用的结构。目的是使用subsref
而不是通常的( )
表示法索引字符串,因为我正在订阅函数的输出。这是我正在尝试做的简单示例(在我的实际代码中,这是在cellfun
中使用的,所以字符串可以有不同的长度,替换是'n'总是在同一个地方):
data = 'quick brown fox';
data2 = strrep(data, 'brown', 'green');
data2(7:end)
我尝试使用substruct
定义此下标的地方:
data = 'quick brown fox';
S = substruct('()', {[7:end]});
subsref(strrep(data, 'brown', 'green'), S)
但这只是给我一个错误:
Error using substruct (line 30)
SUBSTRUCT takes at least two arguments.
Error in myfile (line 3)
S = substruct('()', {(7:end)});
我一直在讨论substruct
和subsref
的文档,而且他们没有提到end
。我该怎么做?
答案 0 :(得分:1)
我无法通过subsref
来做到这一点,因为subs
假设您确切知道您需要哪个@function_handle
。
使用end
动态确定f = @(x) x(7:end);
f(strrep(data, 'brown', ''))
ans =
fox
:
{{1}}