MATLAB Answers

Dinant
0

index notation symbolic toolbox

Asked by Dinant
on 4 Nov 2013
Latest activity Answered by Dinant Kistemaker on 26 Feb 2019
example: fi = sym('fi',[1 2]) fi =
[ fi1, fi2]
I want this to be: fi =
[ fi(1), fi(2)]
This in order to use outcome of symbolic manipulation directly in my matlab code.

  4 Comments

Show 1 older comment
Dinant
on 19 Feb 2014
Really? Somebody of the Mathworks?
Dinant, I answered your question and provided you with code that does exactly what you asked for. If it's not, please clarify in your comments what you actually want.
Thanks for the help, but you did not. I have reinitiated my post in hope I can get a workaround for this...

Sign in to comment.

5 Answers

Answer by Sean de Wolski
on 4 Nov 2013

>> fi = sym([1,2])
?

  0 Comments

Sign in to comment.


Answer by Dinant
on 4 Nov 2013

hmmm, what do you mean with the question mark?

  7 Comments

Dinant, this is what my code does:
clear fi;
fi = sym([1 2]);
sin(fi(1))
It will not return two separate outputs because this is not how MATLAB works. Consider the same question for doubles:
[D(1) D(2)] = [1 2]; %error!
You would need to do this on two lines:
D(1) = 1;
D(2) = 2;
Knowing [1 2] upfront you would want
D = [1 2]
Then
D(1)
Dinant
on 4 Nov 2013
I appreciate your help.
My question relates to the fact that directly want to use the output of symbolic manipulations in my matlab code that is vectorized. Symbolic output is not. It makes from fi(1) fi1. I do not want that. I want the output to be in terms of fi(1), fi(2), etc.
What release are you using? Because on mine(R2013b) it creates a 1x2 sym
Code:
fi = sym([1 2])
size(fi)
sin(fi(1))
Printed:
fi =
[ 1, 2]
ans =
1 2
ans =
sin(1)

Sign in to comment.


Answer by Walter Roberson
on 4 Nov 2013

syms fi
then fi(1) will be fi(1)

  1 Comment

Dinant
on 4 Nov 2013
nope...
>> syms fi >> fi(1) ans = fi

Sign in to comment.


Answer by Dinant Kistemaker on 19 Feb 2019

I am still very much looking forward to an answer to my question. It is really annyoing that the printed format is not in vector notation. I want to use the output for some symbolic manipulations in my code and I want to use vector notation.
if I type:
fi = sym ('fi',[1 3]);
x=cos(fi)
>>x =
[ cos(fi1), cos(fi2), cos(fi3)]
I would very much want to have the answer in vector notation like:
x =
[ cos(fi(1)), cos(fi(2)), cos(fi(3))]

  0 Comments

Sign in to comment.


Answer by Dinant Kistemaker on 26 Feb 2019

Nobody???

  0 Comments

Sign in to comment.