Say I'm trying to make a simple multiplication table and used
Table[i"x"j"="i*j,{i,1,9},{j,1,9}]
I'm trying to make it so that I can get a table of equations, but Mathematica keeps simplifying it so that 1x2 = 2
becomes 4=x
.
Say I'm trying to make a simple multiplication table and used
Table[i"x"j"="i*j,{i,1,9},{j,1,9}]
I'm trying to make it so that I can get a table of equations, but Mathematica keeps simplifying it so that 1x2 = 2
becomes 4=x
.
You can use ToString
and StringJoin
to "correct" your approach as in my comment above. Another possibility of displaying it without using strings (my preferred way) is:
Outer[HoldForm[#1 #2 ] == #1 #2 &, #, #] &@Range@9 // TableForm
Array[]
for the purpose: Array[HoldForm[#1 #2] == #1 #2 &, {9, 9}] // Grid
.
$\endgroup$
– J. M. will be back soon♦
Sep 30 '12 at 1:25
Row
is useful for building up expressions that mix strings and non-strings without converting everything to strings:
Table[Row[{i, "×", j, "=", i*j}], {i, 1, 9}, {j, 1, 9}]
StringForm[]
is a very convenient function for the purpose:
Array[StringForm["`1`×`2`=`3`", #1, #2, #1 #2] &, {9, 9}] // TableForm
Remember to convert your numbers to strings (ToString
) and to join the strings with StringJoin
(<>
)
For example:
Table[
ToString@i <> "×" <> ToString@j <> "=" <> ToString[i*j], {i, 1,
9}, {j, 1, 9}]
(* Out:
{{"1×1=1", "1×2=2", "1×3=3", "1×4=4", "1×5=5", "1×6=6", "1×7=7", "1×8=8", "1×9=9"},
{"2×1=2", "2×2=4", "2×3=6", "2×4=8", "2×5=10", "2×6=12", "2×7=14", "2×8=16", "2×9=18"},
{"3×1=3", "3×2=6", "3×3=9", "3×4=12", "3×5=15", "3×6=18", "3×7=21", "3×8=24", "3×9=27"},
{"4×1=4", "4×2=8", "4×3=12", "4×4=16", "4×5=20", "4×6=24", "4×7=28", "4×8=32", "4×9=36"},
{"5×1=5", "5×2=10", "5×3=15", "5×4=20", "5×5=25", "5×6=30", "5×7=35", "5×8=40", "5×9=45"},
{"6×1=6", "6×2=12", "6×3=18", "6×4=24", "6×5=30", "6×6=36", "6×7=42", "6×8=48", "6×9=54"},
{"7×1=7", "7×2=14", "7×3=21", "7×4=28", "7×5=35", "7×6=42", "7×7=49", "7×8=56", "7×9=63"},
{"8×1=8", "8×2=16", "8×3=24", "8×4=32", "8×5=40", "8×6=48", "8×7=56", "8×8=64", "8×9=72"},
{"9×1=9", "9×2=18", "9×3=27", "9×4=36", "9×5=45", "9×6=54", "9×7=63", "9×8=72", "9×9=81"}}
*)
Here's a variant using Defer
, it requires a little trickery using the replacement facilities of With
, though. But, again, no strings.
Table[With[{a = i, b = j, res = i*j}, Defer[a*b = res]], {i, 1, 3}, {j, 1, 3}]
(*
{{1 1 = 1, 1 2 = 2, 1 3 = 3},
{2 1 = 2, 2 2 = 4, 2 3 = 6},
{3 1 = 3, 3 2 = 6, 3 3 = 9}}
*)
Lately, I've been answering questions using Inactive
, so here's an Inactive
approach:
Table[Inactive[Times][i, j] == i*j, {i,1,9}, {j,1,9}]
{{1*1==1,1*2==2,1*3==3,1*4==4,1*5==5,1*6==6,1*7==7,1*8==8,1*9==9},{2*1==2,2*2==4,2*3==6,2*4==8,2*5==10,2*6==12,2*7==14,2*8==16,2*9==18},{3*1==3,3*2==6,3*3==9,3*4==12,3*5==15,3*6==18,3*7==21,3*8==24,3*9==27},{4*1==4,4*2==8,4*3==12,4*4==16,4*5==20,4*6==24,4*7==28,4*8==32,4*9==36},{5*1==5,5*2==10,5*3==15,5*4==20,5*5==25,5*6==30,5*7==35,5*8==40,5*9==45},{6*1==6,6*2==12,6*3==18,6*4==24,6*5==30,6*6==36,6*7==42,6*8==48,6*9==54},{7*1==7,7*2==14,7*3==21,7*4==28,7*5==35,7*6==42,7*7==49,7*8==56,7*9==63},{8*1==8,8*2==16,8*3==24,8*4==32,8*5==40,8*6==48,8*7==56,8*8==64,8*9==72},{9*1==9,9*2==18,9*3==27,9*4==36,9*5==45,9*6==54,9*7==63,9*8==72,9*9==81}}
For completeness, since V10. we can use StringTemplate
or friends:
Array[
StringTemplate["`1`×`2`= <*# #2*>"]
, {9, 9}
] // TableForm
Strings in Mathematica have a problem with multilevel formulas like fractions:
It is better to use CellPrint[ExpressionCell[<your formula>, "Output"]]
which does not have such problems.
ToString[1/2]
, ToString[1/2, InputForm]
, ToString[1/2, StandardForm]
$\endgroup$
– Kuba♦
Jun 9 '17 at 6:40
Power
operator with a second argument, e.g. like so: #%&^#&
. Usage, e.g., like so: In: 3; In: #%&^#&[1][2] Out: 6
Rom38, please see What the @#%^&*?! do all those funny signs mean? and next time sanitize your input :-)
$\endgroup$
– LLlAMnYP
Sep 18 '18 at 10:00
ToString
s andStringJoin
s thrown in to do it right. Try:Table[ToString@i <> "x" <> ToString@j <> "=" <> ToString[i j], {i, 1, 9}, {j, 1, 9}]
$\endgroup$ – rm -rf♦ Sep 29 '12 at 23:14Inactivate
$\endgroup$ – Wjx Jun 9 '17 at 6:14