给定要在Nx2矩阵R中提取的子串的索引(开始和结束字符),如何从单元格字符串中的S中提取它们?
直观地说,它会像这样工作:
octave:1> S = "123456789";
octave:2> R = [1 3; 2 5; 7 9];
octave:3> msubstr(S, R)
ans =
{"123", "2345", "789"}
答案 0 :(得分:1)
使用arrayfun:
S = "123456789";
R = [1 3; 2 5; 7 9];
octave> arrayfun (@(s,e) S(s:e), R(:,1), R(:,2), "UniformOutput", false)
ans =
{
[1,1] = 123
[2,1] = 2345
[3,1] = 789
}
你也可以为此定义自己的功能:
function ret = msubstr (S, R)
ret = arrayfun (@(s,e) S(s:e), R(:,1), R(:,2), "UniformOutput", false);
endfunction