2
$\begingroup$

I have a list with two sublists of numbers, e.g.

Sigmaf = {{1,2,3},{3,4,5}};

... and I would like to crown each number with ErrorBar to yield:

{{ErrorBar[1], ErrorBar[2], ErrorBar[3]},{ErrorBar[3], ErrorBar[4], ErrorBar[5]}}

I have tried:

MapThread[ErrorBar[#] &, Flatten[Sigmaf]]

... as well as:

MapThread[ErrorBar[#] &, Sigmaf]

... without success. Any tips?

$\endgroup$
2
  • 3
    $\begingroup$ Why use ErrorBar instead of Around? If you're using a more recent version of Mathematica, Around is the modern way to achieve this (and is better supported). $\endgroup$
    – ktm
    Jun 26, 2020 at 1:02
  • $\begingroup$ "Crown".......? $\endgroup$ Jun 26, 2020 at 17:46

1 Answer 1

3
$\begingroup$

1. Map ErrorBar at level -1:

Map[ErrorBar, Sigmaf, {-1}]
{{ErrorBar[1], ErrorBar[2], ErrorBar[3]}, 
 {ErrorBar[3], ErrorBar[4],  ErrorBar[5]}}

2. ReplaceAll replacing number x with ErrorBar[x]:

Sigmaf /. x_?NumericQ :> ErrorBar[x]
{{ErrorBar[1], ErrorBar[2], ErrorBar[3]}, 
{ErrorBar[3], ErrorBar[4], ErrorBar[5]}}

3. Map ErrorBar on Flattened input list and use Internal`CopyListStructure:

Internal`CopyListStructure[Sigmaf, ErrorBar /@ Flatten[Sigmaf]]
{{ErrorBar[1], ErrorBar[2], ErrorBar[3]}, 
{ErrorBar[3], ErrorBar[4], ErrorBar[5]}}
$\endgroup$
2
  • 1
    $\begingroup$ The {-1} is equivalent to {2} for this particular case right? +1, as I wasn't aware of negative levels until today. $\endgroup$
    – flinty
    Jun 25, 2020 at 23:56
  • 1
    $\begingroup$ @flinty, thank you for the vote. Yes, {-1} is the same as {2} for this case. {-1} particularly convenient for sublists with different depths. $\endgroup$
    – kglr
    Jun 26, 2020 at 0:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.