Error converting string into cell array

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.

 Accepted Answer

> 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

Im a little confused. When I did that it erased the variables stored in my trialMatrix. I tried to reassign with
imagesname(t,7)= cellstr(sources)
trialMatrix(t,7)=imagesname(t,7)
but it gave me
"Conversion to double from cell is not possible"
The first block of code in my answer will clear everything from imageNames so that should be called before you assign anything to that variable.
Please show what us what these two variables contain. A screen shot or a copy-paste will due.
  • sources
  • imagesname
Thanks for the screenshots. The variable types are what I expected.
  1. 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.
  2. "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.

Sign in to comment.

More Answers (0)

Categories

Asked:

on 5 Jan 2023

Commented:

on 6 Jan 2023

Community Treasure Hunt

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

Start Hunting!