Nano Hash - криптовалюты, майнинг, программирование

Случайный выбор местоположения члена во вложенной ячейке ячеек: Matlab

У меня есть вложенная ячейка ячеек, как показано ниже:

CellArray={1,1,1,{1,1,1,{1,1,{1,{1 1 1 1 1 1 1 1}, 1,1},1,1},1,1,1},1,1,1,{1,1,1,1}};

Мне нужно случайным образом выбрать место в CellArray. Все местоположения участников CellArray должны иметь одинаковые шансы быть выбранными в процессе случайного выбора. Спасибо.


  • Вы можете найти небольшую связь между этим вопросом и предыдущий мой 17.08.2017
  • Какие могут быть примеры случайного местоположения? 17.08.2017
  • Вы имеете в виду, что каждый 1 должен иметь равные шансы на выбор в соответствии с показанным массивом образцов? 17.08.2017
  • @rayryeng Примером может быть CellArray{1} или CellArray{4}{4}{1} или местоположение любого другого члена во вложенной ячейке. 17.08.2017

Ответы:


1

Вы можете зафиксировать вывод функции celldisp. Затем используйте регулярное выражение для извлечения индексов:

s=evalc('celldisp(CellArray,'''')');
m = regexp(s, '\{[^\=]*\}', 'match');
  • Благодаря @excaza, который предложил более четкое использование регулярного выражения

Результат:

m =
{
  [1,1] = {1}
  [1,2] = {2}
  [1,3] = {3}
  [1,4] = {4}{1}
  [1,5] = {4}{2}
  [1,6] = {4}{3}
  [1,7] = {4}{4}{1}
  [1,8] = {4}{4}{2}
  [1,9] = {4}{4}{3}{1}
  [1,10] = {4}{4}{3}{2}{1}
  [1,11] = {4}{4}{3}{2}{2}
  [1,12] = {4}{4}{3}{2}{3}
  [1,13] = {4}{4}{3}{2}{4}
  [1,14] = {4}{4}{3}{2}{5}
  [1,15] = {4}{4}{3}{2}{6}
  [1,16] = {4}{4}{3}{2}{7}
  [1,17] = {4}{4}{3}{2}{8}
  [1,18] = {4}{4}{3}{3}
  [1,19] = {4}{4}{3}{4}
  [1,20] = {4}{4}{4}
  [1,21] = {4}{4}{5}
  [1,22] = {4}{5}
  [1,23] = {4}{6}
  [1,24] = {4}{7}
  [1,25] = {5}
  [1,26] = {6}
  [1,27] = {7}
  [1,28] = {8}{1}
  [1,29] = {8}{2}
  [1,30] = {8}{3}
  [1,31] = {8}{4}
}

Используйте randi для выбора индекса:

m{randi(numel(m))}
17.08.2017
  • Вы можете получить тот же результат от regexp с m = regexp(s, '\{[^\=]*\}', 'match');, что, я бы сказал, является более четким представлением того, что пользователь получает из регулярного выражения. Тем не менее, очень умно, +1 17.08.2017
  • @rahnema1,@excaza Спасибо, что поделились своими ценными знаниями. 17.08.2017
  • @Amin Рад, если это может помочь! 17.08.2017
  • @rahnema1 Небольшой дополнительный вопрос: если я хочу изменить значение местоположения, выбранного в CellArray, как мне это сделать? 17.08.2017
  • @Amin eval может помочь. idx = 5;value = 3;eval(['CellArray' m{idx} '=' num2str(value) ';']) 17.08.2017
  • @rahnema1 Огромное спасибо! 17.08.2017
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..