If and summation: why do I have the index of the summation in the final result?
Consider the following code:
Sum[If[b != 0, a[m], 0], {m, 1, 4}]
(* 4 If[b != 0, a[m], 0] *)
Why does it return me a[m]
? m is the index of the summation, it shouldn't appear in the result.
Here I expect to have:
If[b != 0, a[1], 0]+If[b != 0, a[2], 0]+If[b != 0, a[3], 0]+If[b != 0, a[4], 0]
I don't understand this behavior
(my example here is to understand this behavior, my specific problem is more complicated but the problem is the same as this one showed here).
summation
add a comment |
Consider the following code:
Sum[If[b != 0, a[m], 0], {m, 1, 4}]
(* 4 If[b != 0, a[m], 0] *)
Why does it return me a[m]
? m is the index of the summation, it shouldn't appear in the result.
Here I expect to have:
If[b != 0, a[1], 0]+If[b != 0, a[2], 0]+If[b != 0, a[3], 0]+If[b != 0, a[4], 0]
I don't understand this behavior
(my example here is to understand this behavior, my specific problem is more complicated but the problem is the same as this one showed here).
summation
add a comment |
Consider the following code:
Sum[If[b != 0, a[m], 0], {m, 1, 4}]
(* 4 If[b != 0, a[m], 0] *)
Why does it return me a[m]
? m is the index of the summation, it shouldn't appear in the result.
Here I expect to have:
If[b != 0, a[1], 0]+If[b != 0, a[2], 0]+If[b != 0, a[3], 0]+If[b != 0, a[4], 0]
I don't understand this behavior
(my example here is to understand this behavior, my specific problem is more complicated but the problem is the same as this one showed here).
summation
Consider the following code:
Sum[If[b != 0, a[m], 0], {m, 1, 4}]
(* 4 If[b != 0, a[m], 0] *)
Why does it return me a[m]
? m is the index of the summation, it shouldn't appear in the result.
Here I expect to have:
If[b != 0, a[1], 0]+If[b != 0, a[2], 0]+If[b != 0, a[3], 0]+If[b != 0, a[4], 0]
I don't understand this behavior
(my example here is to understand this behavior, my specific problem is more complicated but the problem is the same as this one showed here).
summation
summation
edited 1 hour ago
Glorfindel
1811211
1811211
asked 16 hours ago
StarBucK
710212
710212
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
This works:
Sum[If[b != 0, a[m] // Evaluate, 0], {m, 1, 4}]
From the documentation:
If evaluates only the argument determined by the value of the
condition.
$ $
You can use Evaluate to override HoldFirst etc. attributes of built-in
functions.
add a comment |
The other answer by Andrew technically answers your question, but,
maybe what you really wanted was
Sum[If[b =!= 0, a[m], 0], {m, 1, 4}]
which returns
a[1] + a[2] + a[3] + a[4]
The difference between the $,texttt{!=},$ and $,texttt{=!=},$ operators is very important here. Because the truth value of $,texttt{b != 0},$ could not be determined, therefore the
$,texttt{If},$ expressions were returned unevaluated.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
});
});
}, "mathjax-editing");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "387"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f188627%2fif-and-summation-why-do-i-have-the-index-of-the-summation-in-the-final-result%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
This works:
Sum[If[b != 0, a[m] // Evaluate, 0], {m, 1, 4}]
From the documentation:
If evaluates only the argument determined by the value of the
condition.
$ $
You can use Evaluate to override HoldFirst etc. attributes of built-in
functions.
add a comment |
This works:
Sum[If[b != 0, a[m] // Evaluate, 0], {m, 1, 4}]
From the documentation:
If evaluates only the argument determined by the value of the
condition.
$ $
You can use Evaluate to override HoldFirst etc. attributes of built-in
functions.
add a comment |
This works:
Sum[If[b != 0, a[m] // Evaluate, 0], {m, 1, 4}]
From the documentation:
If evaluates only the argument determined by the value of the
condition.
$ $
You can use Evaluate to override HoldFirst etc. attributes of built-in
functions.
This works:
Sum[If[b != 0, a[m] // Evaluate, 0], {m, 1, 4}]
From the documentation:
If evaluates only the argument determined by the value of the
condition.
$ $
You can use Evaluate to override HoldFirst etc. attributes of built-in
functions.
answered 13 hours ago
Andrew
1,9011115
1,9011115
add a comment |
add a comment |
The other answer by Andrew technically answers your question, but,
maybe what you really wanted was
Sum[If[b =!= 0, a[m], 0], {m, 1, 4}]
which returns
a[1] + a[2] + a[3] + a[4]
The difference between the $,texttt{!=},$ and $,texttt{=!=},$ operators is very important here. Because the truth value of $,texttt{b != 0},$ could not be determined, therefore the
$,texttt{If},$ expressions were returned unevaluated.
add a comment |
The other answer by Andrew technically answers your question, but,
maybe what you really wanted was
Sum[If[b =!= 0, a[m], 0], {m, 1, 4}]
which returns
a[1] + a[2] + a[3] + a[4]
The difference between the $,texttt{!=},$ and $,texttt{=!=},$ operators is very important here. Because the truth value of $,texttt{b != 0},$ could not be determined, therefore the
$,texttt{If},$ expressions were returned unevaluated.
add a comment |
The other answer by Andrew technically answers your question, but,
maybe what you really wanted was
Sum[If[b =!= 0, a[m], 0], {m, 1, 4}]
which returns
a[1] + a[2] + a[3] + a[4]
The difference between the $,texttt{!=},$ and $,texttt{=!=},$ operators is very important here. Because the truth value of $,texttt{b != 0},$ could not be determined, therefore the
$,texttt{If},$ expressions were returned unevaluated.
The other answer by Andrew technically answers your question, but,
maybe what you really wanted was
Sum[If[b =!= 0, a[m], 0], {m, 1, 4}]
which returns
a[1] + a[2] + a[3] + a[4]
The difference between the $,texttt{!=},$ and $,texttt{=!=},$ operators is very important here. Because the truth value of $,texttt{b != 0},$ could not be determined, therefore the
$,texttt{If},$ expressions were returned unevaluated.
edited 1 hour ago
answered 11 hours ago
Somos
2107
2107
add a comment |
add a comment |
Thanks for contributing an answer to Mathematica Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f188627%2fif-and-summation-why-do-i-have-the-index-of-the-summation-in-the-final-result%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown