2
$\begingroup$

Say I define a function as follows:

pos[n_] := If[Cos[288 ((n Pi)/233)] > 0 && Sin[288 ((n Pi)/233)] > 0, 1, 0]

Then I want to evaluate at this function at from $n=1$ to $n=233$. Okay so for now, I type it by hand...

pos /@ {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
   19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
   36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
   53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
   70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
   87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 
  103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 
  116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 
  129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 
  142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 
  155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 
  168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 
  181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 
  194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 
  207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 
  220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 
  233}

This is really tiring, let along that I will evaluate from $n=1$ to $n=377$ in the next step. Is there a way for me to do this easier? I tried to evaluate as something like

pos/@{n,1<=n<=233}

but it didn't work.

Thank you!

$\endgroup$
5
  • 2
    $\begingroup$ Boole is better than If, i.e., pos[n_] := Boole[Cos[288 ((n Pi)/233)] > 0 && Sin[288 ((n Pi)/233)] > 0] Then pos /@ Range[233] or if instead you want to know the positions Select[Range[233], pos[#] == 1 &] $\endgroup$
    – Bob Hanlon
    Nov 14, 2020 at 15:57
  • $\begingroup$ @BobHanlon oh nice. This gives what I want!! $\endgroup$ Nov 14, 2020 at 15:59
  • $\begingroup$ @BobHanlon would you like to post an answer so that I can accept and people (and I) can upvote? :) I believe moving your comment to the answer will be great enough $\endgroup$ Nov 14, 2020 at 15:59
  • $\begingroup$ You can answer your own question. $\endgroup$
    – Bob Hanlon
    Nov 14, 2020 at 16:01
  • $\begingroup$ @BobHanlon okay. thank you! $\endgroup$ Nov 14, 2020 at 16:05

1 Answer 1

2
$\begingroup$

As "BobHanlon" suggested, we can re-define the pos function as

pos[n_] := Boole[Cos[288 ((n Pi)/233)] > 0 && Sin[288 ((n Pi)/233)] > 0]

Then, if we want to evaluate from $n=1$ to $n=233$, we can use

pos /@ Range[233]

This will directly give us

    {0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 
0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 
1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 
0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 
0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 
0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 
0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 
1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 
0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 
0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 
0, 0, 0}
$\endgroup$

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.