Error converting string into cell array
7 views (last 30 days)
Show older comments
randsource = randi([1 size(images,1)]);% randomly sample 1 image store as randsource>> 1 = computer, 2 = human
sources = images(randsource).name; % get the corresponding name of the image
source=(imread(sources));
abc= str2double(convertCharsToStrings(sources)) % store the image under the conditions paramter
trialMatrix(t,7)= cellstr(abc)
Sources is an image, however I just need the name of it stored in the matrix, but I am aware that it needed to converted, just not sure how to convert it to a "double" as trialMatrix is a 1x 7 double for some reason, so that is the error I keep getting. Tried to convert num2cell but I have some characters that are stored.
0 Comments
Accepted Answer
Adam Danz
on 5 Jan 2023
> Sources is an image, however I just need the name of it stored in the matrix
Assuming sources is a string or character vector, then imageNames or whatever variable used to store the image names should be a cell array
Pre-allocate imageNames using
imageNames = {};
% or
imageNames = cell(__,__); % if you know what size it should be
then,
imageNames(t,7) = cellstr(sources);
You can get rid of the str2double line. This was converting "sources" to numeric (!?).
4 Comments
Adam Danz
on 6 Jan 2023
Thanks for the screenshots. The variable types are what I expected.
- The imageNames is probably erased because you're creating that cell array using my suggestions after you've aleady assigned data to it. imageNames = {}; --or-- imageNames = cell(__,__) should be called before any data are assigned to that variable.
- "Conversion to double from cell is not possible" - this is the error message that is expected if you're trying to assigning a cell to a numeric array.
More Answers (0)
See Also
Categories
Find more on Data Type Conversion in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!