How Do You Correctly Concatenate Strings in a MATLAB Loop?

  • MATLAB
  • Thread starter Saladsamurai
  • Start date
  • Tags
    Matlab
In summary: Hmmm. I don't think this will do. This will set the i-th element of the array (vector) x to 5 for each value of i. Whereas I want to set one variable named 'x1' equal to 5 and 'x2' =5, etcI suggest not naming variables that way and simply using x(1), x(2), etc.
  • #1
Saladsamurai
3,020
7
This is so easy I am sure...but I have no idea how to look it up.

I want to execute a loop from i = 1 to N

During each iteration I want to prompt the user for the i-th input. Let's say, I want to ask for

x1, x2, x3, ..., xN.

I should be able to write something like:

Code:
for i:N
    x(i) = input(' Enter value of x' & i)
next

But the '&' does not seem to be the proper way to do this...

Anyone know this one?

Thanks! :smile:
 
Physics news on Phys.org
  • #2
for i = 1:3
x(i) = input([' Enter value of x' num2str(i) ': ']);
end
 
  • #3
Wow! You're my hero right now matonski!

Now maybe I can get a little extra out of you? I am used to using

Code:
For i = 1:3
x(i) = input(' stuff ')
end

Can you tell me litle about your syntax? Why are the '[' brackets now required? as in your syntax

Code:
for i = 1:3
x(i) = input([' Enter value of x' num2str(i) ': ']);
end

Thanks again!
 
  • #4
Since i is a number, I had to use num2str to convert it to a string. Then, the brackets are used to concatenate the separate strings.
 
  • #5
matonski said:
Since i is a number, I had to use num2str to convert it to a string. Then, the brackets are used to concatenate the separate strings.

Excellent! So brackets are used to concatenate strings. Perfect!

Thanks again :smile:
 
  • #6
What about this one?

I want to assign the value 5 to the variables x1,x2,x3 so I would like to be able to do something to the effect of

Code:
for i = 1:3

[x num2str(i)] = 5

Thanks!

EDIT: I just tried

strcat(x, num2str(i))= 5

and Horrible things happened! Haha...
 
  • #7
Horrible things happened because you are trying to assign a number to a string. It's like trying to assign 5 to the number 4.

I suggest not naming variables that way and simply using x(1), x(2), etc. There's a way using the function eval, but that's generally frowned upon. Besides, using arrays let's you make use of all matlab's matrix functionality very simply and straightforwardly.

For example, if you wanted to just set x(1) through x(3) to 5, you could just do x(1:3) = 5
 
  • #8
Alternatively, you could do this:
Code:
do i=1:3
  x(i) = 5
end
This is longer than the way matonski suggested, but it's more in line with many other programming languages.
 
  • #9
Mark44 said:
Alternatively, you could do this:
Code:
do i=1:3
  x(i) = 5
end
This is longer than the way matonski suggested, but it's more in line with many other programming languages.

Hmmm. I don't think this will do. This will set the i-th element of the array (vector) x to 5 for each value of i. Whereas I want to set one variable named 'x1' equal to 5 and 'x2' =5, etc

Edit: ok Mark, I see you were simply complementing matonski's post and thus are implying that I should use an array :smile:
 

FAQ: How Do You Correctly Concatenate Strings in a MATLAB Loop?

1. What is MATLAB and what is it used for?

MATLAB (Matrix Laboratory) is a proprietary programming language and multi-paradigm numerical computing environment developed by MathWorks. It is commonly used for data analysis, visualization, and numerical computation in various fields such as engineering, mathematics, and science.

2. Is MATLAB difficult to learn?

The difficulty level of learning MATLAB depends on your previous experience with programming and your familiarity with mathematical concepts. It has a user-friendly interface and comes with extensive documentation and tutorials, making it relatively easy to learn for beginners.

3. Can I use MATLAB for image processing?

Yes, MATLAB has a built-in Image Processing Toolbox that provides a comprehensive set of functions for image manipulation, analysis, and visualization. It is widely used in fields such as medical imaging, remote sensing, and computer vision.

4. Can I use MATLAB for machine learning?

Yes, MATLAB has a Machine Learning Toolbox that offers a wide range of algorithms and tools for developing and implementing machine learning models. It is commonly used for tasks such as classification, regression, clustering, and deep learning.

5. Is MATLAB only limited to numerical computation?

No, MATLAB also supports symbolic computation, which allows you to perform mathematical operations on symbolic expressions and variables. This makes it a powerful tool for solving complex problems in mathematics and engineering.

Similar threads

Replies
1
Views
2K
Replies
1
Views
1K
Replies
3
Views
1K
Replies
4
Views
1K
Replies
1
Views
2K
Replies
5
Views
1K
Back
Top