22
votes
How to pass variables by reference and by value
You asked for a general explanation instead of just focusing on specific application examples, so here it goes ...
The concepts of "pass by reference" and "pass by value" that you ...
20
votes
Accepted
An efficient way to translate a triple for-loop from Matlab to Mathematica
Okay, let's focus on this snippet:
...
10
votes
How do I achive the function of Continue using Catch and Throw?
If you wrap the body of the loop with Catch, then any Throw will act as Continue:
...
10
votes
Accepted
Improve speed with a double for loop
Even in MATLAB, this would not be good programming style because successive concatenation is awfully slow. (And for is slow, too.) Better use ...
10
votes
Accepted
Implementing "do this, then return that" in function definitions
If you want, you could write some thing like this
f[x_] := Module[{k = x},
Do[k = k^2 + 1, {i, 0, x - 1}];
k]
A more natural form would be
...
10
votes
What is the most efficient way to define a Loop until function?
Here's a simpler version:
SetAttributes[Until,HoldAll]
Until[body_, test_] := While[body; !test]
10
votes
All solutions that satisfy $ x_{1}^{5}+x_{2}^{5}+x_{3}^{5}+x_{4}^{5}-x_{5}^{5}=0 $
I am a bit surprised that not a Mathematica solution with a statement "I don't think Mathematica is suited for this kind of problem." is accepted. I do believe that Mathematica is well ...
9
votes
Accepted
An efficient way to evaluate this expression with deeply nested Do loops
UPDATE:
After reposting the below function after modifications from the deleted post to make it work after OP question was changed, I determined a way to utilize ideas from the original deleted post's ...
9
votes
How to terminate a loop when the length of a list reaches a certain length?
If you introduce a length bound already, there is absolutely no reason for Append/AppendTo. Such a loop with ...
9
votes
Accepted
What is the most efficient way to define a Loop until function?
I tend to use
While[True,
body;
If[condition, Break[]]
]
but what you show is equally good. This is just an alternative.
Try to avoid procedural loops in ...
9
votes
Accepted
All solutions that satisfy $ x_{1}^{5}+x_{2}^{5}+x_{3}^{5}+x_{4}^{5}-x_{5}^{5}=0 $
I don't think Mathematica is suited for this kind of problem. Here's a C code that can solve it in 10 seconds on my laptop:
...
8
votes
How to pass variables by reference and by value
You need:
SetAttributes[myfunc, HoldAll]
You then have:
...
8
votes
Accepted
Problem with Excel operation in NETLink way
In the Excel object model, the worksheet symbol Cells represents a property, not a method. In Visual Basic and other languages, many properties have a default ...
8
votes
Accepted
While loop in a function
In addition to the very good suggestions by Fraccalo, the issue here is that Mathematica refuses to overwrite arguments of functions (in general). So you have to introduce a local variable like this:
...
8
votes
Improve speed with a double for loop
(Subtract @@@ Subsets[Most@x, {2}])^2 + (Subtract @@@Subsets[Most@y, {2}])^2
will produce precisely the output of your OP with appropriate performance. Since your ...
8
votes
Accepted
How can I replace a set of Nested For Loops with a Functional Code Alternative?
Update: A faster alternative:
...
8
votes
Implementing Newton's Method?
The main reason is that x1 is not assigned a value before entering the for loop:
...
8
votes
Implementing Newton's Method?
Worth putting it out there that the For loop is not your friend. This does the same
...
8
votes
Accepted
how can i get the following figure using the for loop
Welcome to MMA SE! What the code above does is simply repeatedly overwrite the value of A. In each iteration of the loop, it evaluates ...
8
votes
Accepted
How to put Break command within a Do loop over 2 variables
First of all, the correct commands are Break[] and Continue[], you are missing the square brackets.
Secondly, you do not need <...
8
votes
Accepted
8
votes
8
votes
Accepted
A loop in which three indices are changed
Table
ClearAll[a]
Table[a[i, j] = Partition[LL, 3][[i, j]], {i, 1, 2}, {j, 1, 3}];
{a[1, 3], a[2, 2], a[2, 3]}
{3, 5, 4}
<...
7
votes
Accepted
Iterating FindRoot to solve a differential equation
As I noted in an earlier comment, the ODE to be solved can be rewritten as
eq = y'[x] == Log[1 - Exp[-y[x]]]
Then,
...
7
votes
Accepted
Populating function inputs from lists
f@@(list1 ~Join~ list2)
Or, more generally, use @@ to "open" the structure of List:
<...
7
votes
Accepted
Evaluating number of iteration with a certain map with While
The problem with your code is that for some values of c, Abs[z] will never become larger than 2. You need to cap the number of ...
7
votes
Writing code to produce continued fractions
I think both your code and your Wolfram|Alpha query gave the wrong answer. Here is how I would write a function to generate a rational value from a list of continued fraction terms.
...
7
votes
How to terminate a loop when the length of a list reaches a certain length?
Try
A={1,2,3,4};
While[Length[A] < 10,
A = Append[A, 3.14]]
Which gives
...
7
votes
How to terminate a loop when the length of a list reaches a certain length?
PadRight can be used.
In a general setting you will need to do PadRight[A, N, element].
As in this case, you can use ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
procedural-programming × 346list-manipulation × 68
programming × 24
functions × 22
matrix × 22
performance-tuning × 18
function-construction × 17
iterators × 17
infinite-loop × 17
differential-equations × 15
equation-solving × 15
parallelization × 15
functional-style × 15
iteration × 14
plotting × 12
conditional × 11
code-review × 10
random × 9
recursion × 9
scoping × 9
mathematical-optimization × 8
variable-definitions × 8
numerics × 7
evaluation × 7
calculus-and-analysis × 6