
Re: Very simple question
Posted:
Apr 11, 2014 2:11 AM


I've been away from Mathematica for about 7 years. Can anyone tell me why function fx gives an error message but fy does not? They look functionally the same to me. Please send me an email about this.
fx[ptl_] := Module[{x1, y1, x2, y2, x3, y3}, Print[pt1]; x1 = pt1[[1, 1]]; y1 = pt1[[1, 2]]; x2 = pt2[[2, 1]]; y2 = pt2[[2, 2]]; x3 = pt3[[3, 1]]; y3 = pt3[[3, 2]]; Print[x1, y1, x2, y2, x3, y3]; ] fx[{{1, 2}, {3, 5}, {4, 7}}]
fy[pt1_] := Module[{zz, x1, y1, x2, y2, x3, y3}, zz = pt1; Print[zz]; x1 = zz[[1, 1]]; y1 = zz[[1, 2]]; x2 = zz[[2, 1]]; y2 = zz[[2, 2]]; x3 = zz[[3, 1]]; y3 = zz[[3, 2]]; Print[x1, y1, x2, y2, x3, y3] ] fy[{{1, 2}, {3, 5}, {4, 7}}]
Thank you. Steve Gray stevebg at roadrunner.com
Hi, Stephen,
The answer is also simple: the body of the function fx calls pt2 and pt3 that are not defined anywhere. It confuses Mathematica. If you replace fx as follows:
fx[pt1_] := Module[{x1, y1, x2, y2, x3, y3}, x1 = pt1[[1, 1]]; y1 = pt1[[1, 2]]; x2 = pt1[[2, 1]]; y2 = pt1[[2, 2]]; x3 = pt1[[3, 1]]; y3 = pt1[[3, 2]]; Print[x1, y1, x2, y2, x3, y3]]
Which is probably what you intended, it will return the result. In messages though. To see the result on the screen it is better to do something like the following:
fz[pt1_] := Module[{x1, y1, x2, y2, x3, y3}, x1 = pt1[[1, 1]]; y1 = pt1[[1, 2]]; x2 = pt1[[2, 1]]; y2 = pt1[[2, 2]]; x3 = pt1[[3, 1]]; y3 = pt1[[3, 2]]; {x1, y1, x2, y2, x3, y3}]
fz[{{1, 2}, {3, 5}, {4, 7}}]
{1, 2, 3, 5, 4, 7}
Have fun, Alexei
Alexei BOULBITCH, Dr., habil. IEE S.A. ZAE Weiergewan, 11, rue Edmond Reuter, L5326 Contern, LUXEMBOURG
Office phone : +35224542566 Office fax: +35224543566 mobile phone: +49 151 52 40 66 44
email: alexei.boulbitch@iee.lu

