MATLAB выбирает элементы с учетом конца их имени

Я должен извлечь время начала эксперимента МРТ. У меня есть вложенный вывод с именем "ResOut", который содержит разные матрицы. Один из них называется "cond", и мне нужен 4-й элемент [1,2,3,4]. Но мне нужно знать время его начала, только когда элементы в матрице "pict" (внутри файла ResOut) имеют имя, которое заканчивается на "* v.JPG". Вот часть кода, которую я написал (но она не работает):

for i=1:length(ResOut); 
    if ResOut(i).cond(4)==1 && ResOut(i).pict== endsWith(*"v.JPG")

В чем дело? Можете ли вы помочь мне исправить это? Заранее спасибо,

Адриано

1 ответ

Как правило, полезно начинать с незнакомых функций, читая их документацию, чтобы понять, какие данные они ожидают. Согласно документации дляendsWith, он ожидает два ввода: входной текст и шаблон для сопоставления. В вашем примере вы передаете ему только одну (неправильно отформатированную) строку ввода, так что произойдет ошибка.

Чтобы это исправить, вызовите функцию правильно. Например:

filepath = ["./Some Path/mazeltov.jpg"; "~/Some Path/myfile.jpg"];
test = endsWith(filepath, 'v.jpg')

Возвращает:

test =

  2×1 logical array

   1
   0

Или, более конкретно, к вашему фрагменту кода:

endsWith(ResOut(i).pict, 'v.JPG')

Обратите внимание, что есть дополнительный третий вход, 'IgnoreCase', который вы можете передать как логическое значение true/false контролировать, игнорирует ли совпадение регистр.

Другие вопросы по тегам