Два вопроса, один довольно простой вопрос (по крайней мере, кажется, что он должен быть простым) и тот, который может занять немного больше работы.Не стесняйтесь вносить вклад в одно или оба.
Сначала я бы хотел создать массив строк на основе существующего массива строк на основе критериев.Возьмем, к примеру, аналогичную операцию с двойным массивом:
>> nums = [ 1 2 1 2]
nums =
1 2 1 2
>> big_nums = (nums == 2) .* nums
big_nums =
0 2 0 2
Я хотел бы сделать нечто подобное с массивом строк, однако я не знаю, какую функцию использовать:
>> sizes = ["XL" "L" "XL" "L"]
sizes =
1×4 string array
"XL" "L" "XL" "L"
>> large_sizes = (sizes == "L") .* sizes
Undefined operator '.*' for input arguments of type 'string'.
Я бы хотел, чтобы результат был
large_sizes =
1×4 string array
"" "L" "" "L"
Второй вопрос.Предположим, у меня есть двумерный массив ячеек.Я хотел бы отфильтровать данные по критериям:
>> data = {"winter", 1; "spring", 2; "summer", 3; "fall", 4}
data =
4×2 cell array
["winter"] [1]
["spring"] [2]
["summer"] [3]
["fall" ] [4]
>> nice_weather = ( (data(1,:) == "fall") + (data(1,:) == "spring") ) .* data
Error using ==
Cell must be a cell array of character vectors.
Мне нужен код, который приводит к одному из двух массивов: nice_weather =
4×2 cell array
[""] [1]
["spring"] [2]
[""] [3]
["fall"] [4]
-----ИЛИ -----
nice_weather =
2×2 cell array
["spring"] [2]
["fall"] [4]
В этом вопросе я также открыт для разделения данных на несколько массивов (например, один массив для строк и один массив для чисел).
Спасибо!