用于文件创建的 Matlab 字符串连接
Matlab string concatenation for file creation
我正在学习在线课程来学习和练习 matlab。在课程中,伙计们写道:
basefilename = 'testfile';
filename = [basefilename num2str(1) ".mat"]
和 Matlab returns:
testfile1.mat
但是,当输入相同的输入时,我得到以下输出:
filename =
1×3 string array
"testfile" "1" ".mat"
我尝试了一种更常用的连接方法,输入
filename = [basefilename + "1" + ".mat"]
并进行正确的输出:
testfile1.mat
但是,当将 "1"
更改为 num2str(1)
时(为了用稍后可以在 for 循环中变化的变量替换数字):
filename = [basefilename + num2str(1) + ".mat"]
我得到了完全不同的输出:
filename =
1×8 string array
"165.mat" "150.mat" "164.mat" "165.mat" "151.mat" "154.mat" "157.mat" "150.mat"
我想知道是否有人可以解释为什么每种输入法 return 的输出如此截然不同。在我看来,这三种方法都应该 return 相同的东西...
你能试试去掉“+”和“”吗?所以:
文件名 = [基本文件名 num2str(1) '.mat']
'+'在MATLAB中不用于连接,'和"在MATLAB中是有区别的()
basefilename = 'testfile';
basefilename 是一个字符数组(注意单引号)。双引号表示单个字符串变量。
filename = [basefilename num2str(1) '.mat']
将通过连接 char 的数组而产生所需的结果,而
filename = ["stuff" ".mat"]
将生成一个包含 2 个字符串的数组,如您所述
filename = ["stuff" + ".mat"]
产生一个字符串类型的串联变量。
您展示的例子
filename = ['chars' ".strings"]
filename = ['chars' + "strings"]
会将字符数组(单引号)转换为字符串,然后执行赋值。
我正在学习在线课程来学习和练习 matlab。在课程中,伙计们写道:
basefilename = 'testfile';
filename = [basefilename num2str(1) ".mat"]
和 Matlab returns:
testfile1.mat
但是,当输入相同的输入时,我得到以下输出:
filename =
1×3 string array
"testfile" "1" ".mat"
我尝试了一种更常用的连接方法,输入
filename = [basefilename + "1" + ".mat"]
并进行正确的输出:
testfile1.mat
但是,当将 "1"
更改为 num2str(1)
时(为了用稍后可以在 for 循环中变化的变量替换数字):
filename = [basefilename + num2str(1) + ".mat"]
我得到了完全不同的输出:
filename =
1×8 string array
"165.mat" "150.mat" "164.mat" "165.mat" "151.mat" "154.mat" "157.mat" "150.mat"
我想知道是否有人可以解释为什么每种输入法 return 的输出如此截然不同。在我看来,这三种方法都应该 return 相同的东西...
你能试试去掉“+”和“”吗?所以:
文件名 = [基本文件名 num2str(1) '.mat']
'+'在MATLAB中不用于连接,'和"在MATLAB中是有区别的(
basefilename = 'testfile';
basefilename 是一个字符数组(注意单引号)。双引号表示单个字符串变量。
filename = [basefilename num2str(1) '.mat']
将通过连接 char 的数组而产生所需的结果,而
filename = ["stuff" ".mat"]
将生成一个包含 2 个字符串的数组,如您所述
filename = ["stuff" + ".mat"]
产生一个字符串类型的串联变量。
您展示的例子
filename = ['chars' ".strings"]
filename = ['chars' + "strings"]
会将字符数组(单引号)转换为字符串,然后执行赋值。