If and summation : why I have the indice 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 it returns me an a[m] ? m is the indice 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 it returns me an a[m] ? m is the indice 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 it returns me an a[m] ? m is the indice 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 it returns me an a[m] ? m is the indice 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 2 hours ago
bbgodfrey
44.2k858109
44.2k858109
asked 6 hours ago
StarBucK
688211
688211
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},$ statements 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-i-have-the-indice-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 3 hours ago
Andrew
1,8561115
1,8561115
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},$ statements 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},$ statements 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},$ statements 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},$ statements were returned unevaluated.
edited 25 mins ago
answered 1 hour ago
Somos
1607
1607
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-i-have-the-indice-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