Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 字符串连接和撇号标记_String_Matlab - Fatal编程技术网

String 字符串连接和撇号标记

String 字符串连接和撇号标记,string,matlab,String,Matlab,我正在用MATLAB编写一个长sql查询。为了让人们更容易阅读它在做什么,我尝试将查询分成几行,而不是一行 下面是我的代码(名称已更改) 我的问题是x_lbl(1,1)需要一个“任意一边”。i、 e f2=‘健康’ 上面的代码给了我“Health”,这相当模糊,就像我只做下面的一行,就得到了“Health”。也许我失明了,失去了理智,但看不见以正确的格式进行查询 lbl = strcat('''', x_lbl(1,1), ''''); 更新 x_lbl(1,1) ans = 'Heal

我正在用MATLAB编写一个长sql查询。为了让人们更容易阅读它在做什么,我尝试将查询分成几行,而不是一行

下面是我的代码(名称已更改)

我的问题是x_lbl(1,1)需要一个“任意一边”。i、 e f2=‘健康’

上面的代码给了我“Health”,这相当模糊,就像我只做下面的一行,就得到了“Health”。也许我失明了,失去了理智,但看不见以正确的格式进行查询

 lbl = strcat('''', x_lbl(1,1), '''');
更新

 x_lbl(1,1)
 ans = 'Health Care'


 sql_statement = [1x225 char]
这就是使用最后一行时的答案

,' where DVLP_QES.dbo.num_name_mapping.name = ','''', x_lbl(1, 1),'''');

如果您需要您的
sql\u语句
select[…]tableTwo.f2='Health'
那样完成,则需要在您的
strcat
末尾再添加两个单引号:

sql_statement = strcat('select some_feilds from'...
                       ,' databaseOne.tableOne'...
                       ,' join databaseTwo.tableTwo'...
                       ,' on databaseOne.tableOne.f1 = databaseTwo.tableTwo.f2'...
                       ,' where databaseTwo.tableTwo.f2 =','''', x_lbl(1, 1),'''');
我想
x_lbl(1,1)=健康
没有引号,对吗

编辑:

使用MatlabR2014A

>> x_lbl = 'Health';
>> x_lbl
x_lbl =
Health
>> sql_statement = strcat('select some_feilds from'...
                       ,' databaseOne.tableOne'...
                       ,' join databaseTwo.tableTwo'...
                       ,' on databaseOne.tableOne.f1 = databaseTwo.tableTwo.f2'...
                       ,' where databaseTwo.tableTwo.f2 =','''', x_lbl,'''');
>> sql_statement
sql_statement =
select some_feilds from databaseOne.tableOne join databaseTwo.tableTwo on databaseOne.tableOne.f1 = databaseTwo.tableTwo.f2 where databaseTwo.tableTwo.f2 ='Health'

如果
x_lbl(1,1)
是一个数字,您可以使用
num2str
?e、 g.
a=strcat('we',num2str(34),'are')
hiya抱歉应该指定x_lbl(1,1)始终是一个字符串,在我的语句末尾使用“”,x_lbl(1,1),''实际返回“Health Care”。不确定为什么它与工作的单行代码不同
x_lbl(1,1)
中的内容以及所需的输出是什么?是不是
[…]tableTwo.f2='Health'
?Health在x_lbl(1,1)中?你确定x_lbl(1,1)没有引号吗?是的,没有引号。健康
>> x_lbl = 'Health';
>> x_lbl
x_lbl =
Health
>> sql_statement = strcat('select some_feilds from'...
                       ,' databaseOne.tableOne'...
                       ,' join databaseTwo.tableTwo'...
                       ,' on databaseOne.tableOne.f1 = databaseTwo.tableTwo.f2'...
                       ,' where databaseTwo.tableTwo.f2 =','''', x_lbl,'''');
>> sql_statement
sql_statement =
select some_feilds from databaseOne.tableOne join databaseTwo.tableTwo on databaseOne.tableOne.f1 = databaseTwo.tableTwo.f2 where databaseTwo.tableTwo.f2 ='Health'