У меня есть процесс, который повторяется в наборе данных, хранящихся в отдельных папках. Каждый раз, когда обрабатываются данные определенных папок, мне нужны новые имена переменных, поскольку мне нужно, чтобы результаты были раздельными после завершения начальной обработки для большей обработки. Например в начале каждого нового блока повторной функции Заявляют наборы массивовИспользование Strcat для создания имен динамических переменных
Set_1 = zeros(dim, number);
vectors_1 = zeros(dim, number);
Для следующего набора данных мне нужно:
`Set_2 = .........`
и так далее , Там будет много таких наборов, поэтому мне нужен способ автоматизировать создание этих переменных, а также использовать имена новых переменных в функции, сохраняя при этом, что они являются отдельными после завершения всех функций.
Сначала я попытался использовать strcat('Set_1',int2str(number)) = zeros(dim, number)
, но это не работает, я считаю, потому что это означает, что я пытаюсь установить массив как строку. Я уверен, что должен быть способ создать одну функцию и создать динамически динамические переменные, но, похоже, это вне меня, поэтому, вероятно, это совершенно очевидно, поэтому, если кто-то может сказать мне, что это будет здорово.
Не могли бы вы подробнее объяснить, как использовать массив ячеек или тип данных структуры для имен динамических переменных? Я использовал это, чтобы пользователь задал имя переменной: eval ([var2n '=' num2str (var2v)]); где var2n - это строка, введенная пользователем. – pythonista
Используйте конструкцию с меткой «dot-paren» для имен динамических полей. 's = struct; n = 12; var2v = '123.456'; var2n = sprintf ('foo_% d', n); s.(var2n) = num2str (var2v); ' –
Или с использованием массива ячеек:' Sets = cell (nSets, 1); vectors = cell (nSets, 1); для k = 1: nSets, Set {k} = нули (dim, число); векторов {k} = нули (DIM, число); end' – jpjacobs