我知道这很简单。我只是不记得怎么做了!
我有什么:
>> filenames
filenames =
'0F06EB0A338A35CDBD33356A470D5052'
'75168DAA9A225EF6F79DDA5014CA69FD'
'DAEE5EE3E65584655CE208F15D1F6F43'
'EF026066C8BAB5D32F9B67872C69451D'
我想要的是什么:
>> varnames
varnames =
'x0F06EB0A338A35CDBD33356A470D5052'
'x75168DAA9A225EF6F79DDA5014CA69FD'
'xDAEE5EE3E65584655CE208F15D1F6F43'
'xEF026066C8BAB5D32F9B67872C69451D'
(我知道genvarnames
,但这不是我将要使用的,因为我需要x
在所有这些之前)。
到目前为止我尝试了什么
>> ['x' filenames{1}]
ans =
x0F06EB0A338A35CDBD33356A470D5052
非常成功!现在我只需要将其概括为整体。但是,我不打算使用for-loop,因为我不是一个食人魔。
我们试试这个:
>> ['x' filenames{:}]
ans =
x0F06EB0A338A35CDBD33356A470D505275168DAA9A225EF6F79DDA5014CA69FDDAEE5EE3E65584655CE208F15D1F6F43EF026066C8BAB5D32F9B67872C69451D
Weeeell,差不多,也许repmat
可以提供帮助!很明显:
>> repmat('x', 4, 1)
ans =
x
x
x
x
这就是我需要让它工作的所有,对吧?
>> varnames= [repmat('x', 4, 1) filenames{:}]
??? Error using ==> horzcat
CAT arguments dimensions are not consistent.
错误。也许这很简单:
>> varnames= [repmat('x', 4, 1) filenames(:)]
??? Error using ==> horzcat
CAT arguments dimensions are not consistent.
如果我将它们全部删除怎么办?
>> varnames= [repmat('x', 4, 1) filenames]
??? Error using ==> horzcat
CAT arguments dimensions are not consistent.
...让我们只是胡椒{}
>> varnames= {repmat('x', 4, 1) filenames{:}}
varnames =
Columns 1 through 4
[4x1 char] [1x32 char] [1x32 char] [1x32 char]
Column 5
[1x32 char]
......废话。
嗯,我没有想法,我不会因为失败的尝试而烦扰你。 我拒绝相信for循环是唯一的方法!
答案 0 :(得分:2)
http://www.mathworks.com/help/matlab/ref/strcat.html
“水平连接字符串”
strcat('x',StringMatrix)
测试:
>> SA2
SA2 =
'four' 'five' 'six'
>> strcat('x',SA2)
ans =
'xfour' 'xfive' 'xsix'