- Make a temp variable, such as tempVar=dumpFiles(i); and then GBMD.loadDumpFile(tempVar)
- try GBMD.loadDumpFile(char(dumpFiles(i)))
How to create a string array and access the elements without throwing "COMMAND must be a string scalar or character vector" error?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
drcymb1
am 6 Apr. 2024
Kommentiert: Fangjun Jiang
am 7 Apr. 2024
Hi, I am trying to have a command that operates on a series of different strings (specifically, different file names). Normally I would use fullfile and something with an asterisk marker to get all the files I want from a folder, but in this case, each file has a very distinct name, and if I try to use my normal method I will end up with way too many files.
I tried to pass in the file names by using a strings array [dumps=strings(fname1,fname2,fname3,fname4,fname5)], which gave me the following 5x1 string array:
"/fslgroup/compute/Al_Dataset/refilledDump/rstruct_S3_fcc_N1_1_1_Al_M99_201228.553.out"
"/fslgroup/compute/Al_Dataset/refilledDump/rstruct_S7_fcc_Nn29_n2_10_Al_M99_201228.151.out"
"/fslgroup/compute/Al_Dataset/refilledDump/rstruct_S23_fcc_Nn45_49_109_Al_M99_201228.1424.out"
"/fslgroup/compute/Al_Dataset/refilledDump/rstruct_S27b_fcc_N23_n19_1_Al_M99_210713.5462.out"
"/fslgroup/compute/Al_Dataset/refilledDump/rstruct_S197c_fcc_Nn109_n223_53_Al_M99_200714.31.out"
This array was then submitted to the following function:
function [] = plotSimBox(dumpFiles)
for i=1:length(dumpFiles)
[~,BBox,~,~]=GBMD.loadDumpFile(dumpFiles(i));
etc.
The loadDumpFile function takes in a file name as an input, so that's what it's looking for. Even though each element of this array is a string, when I try to access them in this way, I receive the error "COMMAND must be a string scalar or character vector." Here's the complete error message:
Error using GBMD.loadDumpFile (line 634)
COMMAND must be a string scalar or character vector.
Error in plotSimBox (line 7)
[~,BBox,~,~]=GBMD.loadDumpFile(dumpFiles(i));
I'm not sure if there's a better way to construct an array of strings or to access them?
0 Kommentare
Akzeptierte Antwort
Fangjun Jiang
am 6 Apr. 2024
Verschoben: Fangjun Jiang
am 6 Apr. 2024
This error might be particular to the GBMD.loadDumpFile(). Can you try either one of these
2 Kommentare
Fangjun Jiang
am 7 Apr. 2024
This reply was added and later deleted by the OP.
@Fangjun Jiang, your comment worked for me. I had tried a temp variable and I had tried using string string(dumpFiles(i)), but I hadn't tried char, which ended up working. Thanks!
Fangjun Jiang
am 7 Apr. 2024
Althouth this is a workaround, the original error message indicated that the code inside GBMD.loadDumpFile() is not robust, as tempVar=dumpFiles(i) is a string scalar.
Or indeed, GBMD.loadDumpFile() only accepts char array, and then whatever "COMMAND" was constructed based on that char array.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Characters and Strings finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!