Azzera filtri
Azzera filtri

[absolute beginner] What is the purpose of strcat when used in this way?

20 visualizzazioni (ultimi 30 giorni)
Hello,
If I have a code that goes:
my_dir = char(InputtedFile{:,"VariableColumn"});
my_dir = strcat(my_dir,'\');
When I run the first line it is still the same result as if I run the second line with it. What is the purpose of this conceptually? In the first line of code I am specifying a column in a file I previously input and assigning it to a variable. I am as well a little unclear as to why char is used but I am still searching on that.
Thank you..

Risposte (1)

Cris LaPierre
Cris LaPierre il 12 Ott 2023
The explanation from the documention does a good job summarizing its function as "Concatenate strings horizontally". So it takes the first input and adds the second input to it. Here, that is a backslash.
We don't have your variable InputtedFile to work with, so I've replaced it.
my_dir = char(["Happy";"Birthday"])
my_dir = 2×8 char array
'Happy ' 'Birthday'
my_dir = strcat(my_dir,'\')
my_dir = 2×9 char array
'Happy\ ' 'Birthday\'
I don't know why you are using char. Why did you include it? What is the result if you remove it?
my_dir = ["Happy";"Birthday"];
my_dir = strcat(my_dir,'\')
my_dir = 2×1 string array
"Happy\" "Birthday\"
It looks like InputtedFile is a table. It might be simpler to extract your variable using dot notation (see here: https://www.mathworks.com/help/matlab/matlab_prog/access-data-in-a-table.html).
my_dir = InputtedFile.VariableColumn
  5 Commenti
Cris LaPierre
Cris LaPierre il 12 Ott 2023
In this case, you can think "strcat(A,B)" means "AB".
If you don't have the ability to talk with the person who wrote the code, you can build up a general understanding of MATLAB by going through some of the Onramps or other self-paced trainings you may have access to. You can access those here: https://matlabacademy.mathworks.com/
Adam Danz
Adam Danz il 12 Ott 2023
+1 to using fullfile. You can also use filesep to add the ending slash. That way the correct file seporator character will be added for the system.
my_dir = '2023Taxes';
fullfile(my_dir,filesep)
ans = '2023Taxes/'
Another benefit is that fullfile will not add an additional separator if there's one already present.
my_dir = '2023Taxes/'
my_dir = '2023Taxes/'
fullfile(my_dir,filesep)
ans = '2023Taxes/'

Accedi per commentare.

Categorie

Scopri di più su MATLAB in Help Center e File Exchange

Tag

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by