Why can't I write this row vector?
1 view (last 30 days)
Show older comments
Armando MAROZZI
on 22 Mar 2020
Commented: Armando MAROZZI
on 22 Mar 2020
I simply want a 1x3 row vector like this: . I tried the following:
[x(1,3); x(2,3); x(3,3)]
but I got the following error:
Unrecognized function or variable 'x'.
Why? How to sort it out?
0 Comments
Accepted Answer
John D'Errico
on 22 Mar 2020
Edited: John D'Errico
on 22 Mar 2020
Very often, people who are just starting to use MATLAB, think that if you don't know the value of something, then it must be symbolic. That is not always true. I'll give some examples later. But to do what you are asking right now, just do this:
X = sym('X',[1,3])
X =
[X1, X2, X3]
As I said, you can have an unknown that will then be estimated. For example, if we stay in the purely numerical domain, we can solve for an unknown vector. This eample is pretty simple, but...
fun = @(X) sum((X - [1 2 3]).^2);
Xinit = [4 4 4];
Xfinal = fminsearch(fun,Xinit)
Xfinal =
0.99999144502901 1.99997109582809 2.99995541073201
Of course, the minimum arises at the vector [1 2 3].
More Answers (1)
Image Analyst
on 22 Mar 2020
Define x somehow before that line, like these examples
x = magic(3)
x = rand(3)
x = randi(100, 3, 3)
or whatever.
3 Comments
Image Analyst
on 22 Mar 2020
Edited: Image Analyst
on 22 Mar 2020
I don't have that toolbox so I don't know what kind of assumptions it makes. I've added it to the product list, which you forgot to do when you created this posting.
What are you going to do after that? How are you going to use x? Or that 3 element, 1-D column vector you're trying to make from the 2-D x matrix?
See Also
Categories
Find more on Loops and Conditional Statements in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!