假设我在MATLAB的命令提示符中键入x = 'BODD'
,然后说x(1)
它将返回B
。我想要的是x(1)
返回空字符串(''
)或没有等等,x(2)
返回B
等等,直到x(5)
返回最终D
?
答案 0 :(得分:2)
我认为你的意思是你真的想要空零长度字符串''
。这个问题有一些答案,假设你想要的是包含空格的单字符字符串,ASCII值为32。
如果是这种情况,我恐怕你不能这样--MATLAB数组(包括字符数组,这就是MATLAB的“字符串”就是这样)。有两种方法可以看......
您要求x(1)
。现在,您使用的索引表达式1
的大小为1x1
。因此,您可以保证获得1x1
返回值或错误。这意味着无法获得0x1
或0x0
(真正的“空字符串”)。这类似于,如果您要求x(2:4)
,则可以保证获得1x3
个字符数组。在这种情况下,2:4
是1x3
数组。
没有办法“有意义地”将一个零长度字符串添加到另一个字符串的开头。如果a = 'WXYZ';
,则运行b = ['' a]
只会返回'WXYZ'
。它没有以某种方式在原始字符串的前面贴上一个空字符串的魔法占位符。
答案 1 :(得分:0)
您无法在结尾或开始时连接''
但是,你可以有空格/空格,如下所示: -
>> x=BODD;
>> x=[' ' x]; % Use normal matrix concatenation
>> x(1)
ans =
>> x(2)
ans =
B
答案 2 :(得分:0)
尝试以下连接
x = [' ' x];
答案 3 :(得分:0)
如果您希望字符串本身仍然是“BODD”,您可以尝试编写自定义函数:
function [char] = emptyConcat(string, index)
if (index == 1)
char = '';
else
char = string(index - 1);