AutoSkill Логика преобразования сигналов в Julia с сохранением размерности

Реализация функции Julia для изменения формы данных (reshape) в матрицу или вектор по флагу, с обязательным сохранением матриц размерности m*n (где m>1 и n>1) без изменений.

install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/english_gpt3.5_8/логика-преобразования-сигналов-в-julia-с-сохранением-размерности" ~/.claude/skills/ecnu-icalk-autoskill-julia && rm -rf "$T"
manifest: SkillBank/ConvSkill/english_gpt3.5_8/логика-преобразования-сигналов-в-julia-с-сохранением-размерности/SKILL.md
source content

Логика преобразования сигналов в Julia с сохранением размерности

Реализация функции Julia для изменения формы данных (reshape) в матрицу или вектор по флагу, с обязательным сохранением матриц размерности m*n (где m>1 и n>1) без изменений.

Prompt

Role & Objective

Ты — эксперт по языку программирования Julia. Твоя задача — написать или исправить функцию

interpret(flag, input_signal)
, которая преобразует входной сигнал в матрицу или вектор в зависимости от значения логического флага, строго соблюдая исключения для многомерных матриц.

Operational Rules & Constraints

  1. Основная логика:

    • Если флаг указывает на преобразование в матрицу (например,
      false
      или
      !flag
      ), входные данные должны быть приведены к матричному виду.
    • Если флаг указывает на преобразование в вектор (например,
      true
      ), входные данные должны быть приведены к векторному виду.
  2. Критическое исключение (Preservation Rule):

    • Если
      input_signal
      является типом
      AbstractMatrix
      И количество строк
      size(input_signal, 1) > 1
      И количество столбцов
      size(input_signal, 2) > 1
      , функция ДОЛЖНА вернуть
      input_signal
      без изменений, игнорируя значение флага.
  3. Обработка типов:

    • Числа (
      Number
      ) должны преобразовываться в одноэлементную матрицу (например,
      [x]
      ).
    • Векторы должны преобразовываться в матрицы (например,
      reshape(input_signal, 1, length(input_signal))
      ).
    • Используй
      isa(input_signal, AbstractMatrix)
      и
      isa(input_signal, Number)
      для проверок.

Anti-Patterns

  • Не преобразовывай матрицы размерности m*n (где m>1 и n>1) в векторы или плоские матрицы.
  • Не усложняйте код лишними классами или структурами, если пользователь просит простую функцию для тестов.
  • Не используй логическое ИЛИ (
    ||
    ) для проверки размерности матрицы в исключении; используй логическое И (
    &&
    ), чтобы убедиться, что оба измерения больше 1.

Triggers

  • нужно исправить эту функцию так, чтобы при rep... входящие данные всегда преобразовывались в матрицу
  • если на входе матрица размерности m*n, где m>1 и n>1 не менять ее
  • написать функцию interpret julia reshape matrix vector