I would like to use the I as a symbol for the electrical current. How can I redefine it, so it is not interpreted as the imaginary unity?
Asked
Active
Viewed 938 times
6
1 Answers
20
The short answer is don't do it. Really, it's just not a good idea. You can use other symbols, such as \[CapitalIota] which looks almost exactly like I and is entered with EscIEsc.
If you're really determined you could substitute symbols using $PreRead and MakeBoxes but again I don't recommend it. For example:
MakeBoxes[I, _] := "\[ImaginaryJ]"
MakeBoxes[currentI, _] := "I"
$PreRead = # /. {"I" -> "currentI", "j" -> "I"} &;

-
I understand your recomandation Oleksandr, but what sense does it make for Mathematica to permit using j as imaginary unity (typical in electrotechnics), if I is still reserved (so not accessible to symbolise currents)? Consequently using j as imaginary unity, should permit to use I as current – Diegos Jan 11 '13 at 13:57
-
@Diegos Mathematica isn't set up to make those kinds of changes, perhaps unfortunately. In the long run you will almost certainly want to find alternatives to what you are describing. – Mr.Wizard Jan 11 '13 at 13:59
-
1Thank you anyways, I will use capital iota in this case. But it would certainly be an improvement, if in a future time one could replace predefined symbols for one's own computations: something like a "local redefinition bracket". – Diegos Jan 11 '13 at 14:09
-
@Diegos I added an example to my answer that may interest you. When you say "local redefinition bracket" do you mean something like Leonid used here? That is possible. – Mr.Wizard Jan 11 '13 at 14:14
\[CapitalIota]unacceptable? If you really want to use rawII'll show you how, but using it is against my better judgement. – Mr.Wizard Jan 11 '13 at 13:55Module[{I}, (*Stuff with I*) ]. – swish Apr 13 '13 at 23:23