I want to print a list from a function but It gives me 4 lists. I think I shouldn't use Print[] function.
Here is the code:
alista = {{2, 1}, {4, 4}, {7, 5}, {10, 5}, {12, 5}};
alist3a = {};
fnk[n_] :=
Which[n == 1, Do[
alist2a = {(alista[[k, 1]] +
alista[[k + 1, 1]])/(2), (alista[[k, 2]] +
alista[[k + 1, 2]])/(2)}
;
AppendTo[alist3a, alist2a] && Print[Sort[Join[alista, alist3a]]]
, {k, 1, Length[alista] - 1}],
n == 2, Do[
alist2a = {alista[[i,
1]] + (-alista[[i, 1]] + alista[[i + 1, 1]])/(3),
alista[[i, 2]] + (-alista[[i, 2]] + alista[[i + 1, 2]])/(3)}
;
AppendTo[alist3a, alist2a] && Print[Sort[Join[alista, alist3a]]]
, {i, 1, Length[alista] - 1}];
Do[
alist3aa = {alista[[i,
1]] + (-alista[[i, 1]] +
alista[[i + 1, 1]])/(3) + (-alista[[i, 1]] +
alista[[i + 1, 1]])/(3),
alista[[i,
2]] + (-alista[[i, 2]] +
alista[[i + 1, 2]])/(3) + (-alista[[i, 2]] +
alista[[i + 1, 2]])/(3)};
AppendTo[alist3a, alist3aa] && Print[Sort[Join[alista, alist3a]]]
, {i, 1, Length[alista] - 1}]]
fnk[1]
The output is
{{2,1},{3,5/2},{4,4},{7,5},{10,5},{12,5}}
{{2,1},{3,5/2},{4,4},{11/2,9/2},{7,5},{10,5},{12,5}}
{{2,1},{3,5/2},{4,4},{11/2,9/2},{7,5},{17/2,5},{10,5},{12,5}}
{{2,1},{3,5/2},{4,4},{11/2,9/2},{7,5},{17/2,5},{10,5},{11,5},{12,5}}
The requested output is the last row in the printed list.
{{2,1},{3,5/2},{4,4},{11/2,9/2},{7,5},{17/2,5},{10,5},{11,5},{12,5}}