如何使用MATLAB的子结构函数创建表示使用“结束”的引用的结构?

时间:2013-12-11 00:22:09

标签: matlab

我想使用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)});

我一直在讨论substructsubsref的文档,而且他们没有提到end。我该怎么做?

1 个答案:

答案 0 :(得分:1)

我无法通过subsref来做到这一点,因为subs假设您确切知道您需要哪个@function_handle

使用end动态确定f = @(x) x(7:end); f(strrep(data, 'brown', '')) ans = fox

{{1}}