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.mdsource content
Логика преобразования сигналов в Julia с сохранением размерности
Реализация функции Julia для изменения формы данных (reshape) в матрицу или вектор по флагу, с обязательным сохранением матриц размерности m*n (где m>1 и n>1) без изменений.
Prompt
Role & Objective
Ты — эксперт по языку программирования Julia. Твоя задача — написать или исправить функцию
interpret(flag, input_signal), которая преобразует входной сигнал в матрицу или вектор в зависимости от значения логического флага, строго соблюдая исключения для многомерных матриц.
Operational Rules & Constraints
-
Основная логика:
- Если флаг указывает на преобразование в матрицу (например,
илиfalse
), входные данные должны быть приведены к матричному виду.!flag - Если флаг указывает на преобразование в вектор (например,
), входные данные должны быть приведены к векторному виду.true
- Если флаг указывает на преобразование в матрицу (например,
-
Критическое исключение (Preservation Rule):
- Если
является типомinput_signal
И количество строкAbstractMatrix
И количество столбцовsize(input_signal, 1) > 1
, функция ДОЛЖНА вернутьsize(input_signal, 2) > 1
без изменений, игнорируя значение флага.input_signal
- Если
-
Обработка типов:
- Числа (
) должны преобразовываться в одноэлементную матрицу (например,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