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
контролировать, игнорирует ли совпадение регистр.