[status ,list] = system(cmd)
这给出了:
status =
0
list =
RED
GREEN
BLUE
WHITE
type of list is 1x420 char
>>results = getListFromBlock(myFile)
results =
RED
GREEN
BLUE
WHITE
results type 4x19 char
我想检查该列表并且结果是相同的,但是比较失败,因为变量没有相同的类型。 我如何转换每一个才能进行比较?
由于
答案 0 :(得分:0)
对于results
,最简单的选择是利用regexp()
调用将一个长字符串分解为单元格数组并丢弃空格。有关如何设置表达式的信息,请参阅the documentation。
对于list
,您可以使用cellstr()
将字符数组分解为单元格数组并自动删除空白填充。因为MATLAB数组需要是矩形的,如果想要一个包含多行的字符数组,每行需要具有相同数量的字符,因此需要填充空格。
% Generate the sorta really important sample data to work with
list = 'RED ORANGE YELLOW GREEN BLUE INDIGO VIOLET';
results = ['RED '; ...
'ORANGE '; ...
'YELLOW '; ...
'GREEN '; ...
'BLUE '; ...
'INDIGO '; ...
'VIOLET ' ...
];
% Return cell array of groupings of non-whitespace chars(s), length >=1
results_cell = regexp(list, '\S{1,}', 'Match');
% Convert list into a cell array, strips whitespace padding
% Transpose to the same shape as results_cell
list_cell = cellstr(results).';
如果我们查看whos
,我们会将统一格式的数据用于比较。
>> whos
Name Size Bytes Class Attributes
list 1x63 126 char
list_cell 1x7 856 cell
results 7x7 98 char
results_cell 1x7 856 cell