Problems running the code in Mac
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hi,
I have a code that works fine with windows, but returns me an error when I try to run it using mac. Here is my code and my error
for i=1:numel(M_.params)
p.(M_.param_names{i}) = M_.params(i);
end
Brace indexing is not supported for variables of this type.
Here, M_.param_names is 54x8 char and M_.params is 54x1 double.
0 Kommentare
Akzeptierte Antwort
Jan
am 6 Mär. 2023
This will not run on a PC also. If M_.param_names is a 54x8 char, you cannot use braces for indexing, because they work for cells only.
So the actual problem is, why M_.param_names is a CHAR matrix on the Mac, while it must be a cell string on the PC to let the code run. How did you create this variable? Is it an import of a text file, which expects specific line breaks?
3 Kommentare
Jan
am 7 Mär. 2023
@Vahagn: This looks like a CHAR matrix and as explained already, you cannot access it with curly braces as index. But the conversion to a cell string is easy:
names = cellstr(M_.param_names); % This is a cell string now
for i=1:numel(M_.params)
p.(names{i}) = M_.params(i);
end
cellstr crops the trailing spaces.
Weitere Antworten (1)
Steven Lord
am 6 Mär. 2023
Indexing into a char array using {} is not supported on any platform.
a = 'abracadabra'
a(5) % 'c'
a{5} % error
Perhaps your M_.param_names variable is a char array on Mac but a cell array containing char arrays on Windows and/or Linux. How do you create that field of the M_ struct?
0 Kommentare
Siehe auch
Kategorien
Mehr zu Cell Arrays 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!