MATLAB Answers

What is the syntax to access a particular member in an array?

1 view (last 30 days)
Hi, I have an array x=[1 2 3 4 5].
I then manipulate x, e.g. (A*x/B+C-D)...How can I determine the third member of the manipulated array?
This works but i feel there is a simpler way:
temp=(A*x/B+C-D);
temp(3)
Is there a way to do something like
(A*x/B+C-D)(3)?

  1 Comment

Azzi Abdelmalek
Azzi Abdelmalek on 29 Jul 2014
There is no simpler way. I think also that you tried what you are asking about and it didn't work

Sign in to comment.

Accepted Answer

Image Analyst
Image Analyst on 29 Jul 2014
No other way. You're doing it correctly. That (temp(3)) is about as simple as it gets. What do you want - just a single character? You will write programs that are thousands of lines long, and referring to temp(3) is so so very trivial in comparison to the rest of your program that you should not worry about it.

  2 Comments

Image Analyst
Image Analyst on 29 Jul 2014
By the way, I think the alternate way you suggested is more confusing/ambiguous/deceptive. Someone might think you wanted to multiply that expression by the number 3. The first way is much more explicit and obvious what you meant and memory is cheap and plentiful so don't worry about using a few dozen or a few million more elements.
Rainer
Rainer on 29 Jul 2014
Great, thanks for the answer. Just thought I'd check.

Sign in to comment.

More Answers (1)

Michael Haderlein
Michael Haderlein on 29 Jul 2014
Actually, I sometimes also don't want to assign some intermediate result to an extra variable. Tucker McClure has included a function in his collection of functional programming constructs which I use in this case:
>> x=1:5;
>> paren(x.^2,3)
ans =
9

  3 Comments

Image Analyst
Image Analyst on 29 Jul 2014
Just gives an error for me:
>> x=1:5;
>> paren(x.^2,3)
Attempt to execute SCRIPT paren as a function:
C:\Program Files (x86)\MATLAB\R2014a\toolbox\matlab\ops\paren.m
Michael Haderlein
Michael Haderlein on 30 Jul 2014
Have you downloaded the collection I have linked? According to your error message, Matlab doesn't find the paren function.
Even if you don't want to use this particular function: there are lots of helpful little functions included, it's really worth a look in my opinion.

Sign in to comment.

Sign in to answer this question.