2017-02-18 5 views
-1

В MATLAB 1i представляет собой мнимую единицу.Как заменить 1i и сделать 2i, 3i, 4i возможным?

  1. Можно ли изменить 1i?
  2. Возможно ли присвоить собственное определение для 2i, 3i и т. Д.?

Спасибо!

Edit: Так как я немного неудобно вниз голосования, я должен уточнить мое заявление здесь:

Моя цель заключается в расширении комплексного числа классов в Matlab. Зачем? Поскольку встроенное комплексное число в Matlab является только для простого комплексного числа. То есть, если у вас есть несколько комплексное число, таких как би-комплексное число в виде:

г = а + Ь * (1i) + С * (2i) + d * (1i) * (2i)

Где 1i и 2i являются би-комплексные числа, способность модификации встроенного в определении 1i и 2i в Matlab бы сделать несколько сложной операцией номер более удобным.

+0

Я не понимаю ваш вопрос. Что вы подразумеваете под «modify' 1i »? – rayryeng

+2

Нет, это невозможно! Синтаксис '1i',' 2i' ... зарезервирован для мнимых единиц. – Rotem

+0

@ rayryeng: изменить как в redefine это. см. мое редактирование для уточнения. Благодаря! – cylee

ответ

0

Номер i является функцией в matlab и может быть перезаписана вашей собственной функцией или переменной. Тем не менее, Matlab игнорирует ваши другие определения, когда i немедленно предшествует номер без разделительных пробелов, например 1 + 2i.

Предположим, что я создал файл, содержащий i.m, который имел функцию i, которая не принимает никаких аргументов и возвращает 321. Затем я запускаю следующий сценарий:

i = 123; 
disp(i); % my variable 
disp(i()); % my function 
disp(1i); % builtin i 

Код производит следующий вывод.

123 
321 
0.0000 + 1.0000i 

Там нет ничего, что вы можете сделать о 1i. Однако, если вы в порядке с записью 1*i, то вы можете делать практически все, что захотите.

Для получения более подробной информации см. https://www.mathworks.com/help/matlab/ref/i.html.

+0

Благодарим вас за ответ. Но я ищу больше, чем это. Пожалуйста, см. Мое редактирование для дальнейшего уточнения. – cylee

Смежные вопросы