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.

 Réponse acceptée

Adam Danz
Adam Danz le 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 commentaires

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"
Adam Danz
Adam Danz le 6 Jan 2023
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
Jade T
Jade T le 6 Jan 2023
Thanks!
Adam Danz
Adam Danz le 6 Jan 2023
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.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

Community Treasure Hunt

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

Start Hunting!

Translated by