필터 지우기
필터 지우기

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

조회 수: 20 (최근 30일)
Dani
Dani 2023년 10월 12일
댓글: Adam Danz 2023년 10월 12일
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..

답변 (1개)

Cris LaPierre
Cris LaPierre 2023년 10월 12일
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
Cris LaPierre
Cris LaPierre 2023년 10월 12일
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 2023년 10월 12일
+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/'

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 MATLAB에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by