edit_string = get(handles.string_edit,'string');
if (isempty(edit_string))
disp('Please give an string to add')
end
list_string = get(handles.listbox1,'string'); % list_string是一个元胞?是
if (~isempty(list_string))
set(handles.listbox1,'string',vertcat(edit_string,list_string));
else
set(handles.listbox1,'string',edit_string);
end
该段代码是把编辑框中的字符加入到裂框中。 我们几种方法可验证该问题。
比如 在
list_string = get(handles.listbox1,'string'); % list_string是一个元胞?是
后面加上 class(list_string) 然后我们就可以在命令行看到结果为 cell
然而,本文重点不在于次!我想说的是 函数 vertcat 和 函数 cat(1,...)
这俩个函数在垂直方向拼接输入参数但是他们俩个函数都需要输入参数列相同
例如
a = ['123 ';'1234';'4 6']
a =
123
1234
4 6
>> b = '44'
b =
44
>> cat(1,b,a)
Error using cat
Dimensions of matrices being concatenated are not consistent.
>> vertcat(b,a)
Error using vertcat
Dimensions of matrices being concatenated are not consistent.
当列相同的时候拼接是成功的
c = '1470'
c =
1470
>> cat(1,c,a)
ans =
1470
123
1234
4 6
vertcat 结果也一样
然而,开始的程序在执行的时候却没有错误,这就说明 列表框'string'返回的存储类型绝对不是普通高维数组。cat函数与vertcat函数对与元胞数组也是使用的。例如:
a = {'1231';'sdfa'}
a =
'1231'
'sdfa'
>> b = '1'
b =
1
>> cat(1,b,a)
ans =
'1'
'1231'
'sdfa'
本人初学matlab,以上均是学习过程中遇到的问题,总结的心得!如果您发现有什么错误,还望指出来!谢谢!