2015-02-19 3 views
-1
[status ,list] = system(cmd) 

это дает:сравнивающие символы с MATLAB

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

кажется, что мой вопрос не был ясен, поэтому я спросил еще раз более подробно. – lola

+0

проблема здесь не в том, чтобы использовать какую функцию для сравнения, но как преобразовать эти 2 переменные, чтобы иметь возможность сравнивать – lola

ответ

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  
Смежные вопросы