cell contents assignment to a non-cell array object
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Ahmed Saafan
el 27 de Mzo. de 2018
Comentada: Ahmed Saafan
el 27 de Mzo. de 2018
I am trying to store the results of a for loop in a cell array but I get the following error:
Cell contents assignment to a
non-cell array object.
Error in Untitled_2 (line 7)
C{x} = Noise_x;
Here is my code:
Image = imread('C:\Program Files\MATLAB\R2017a\bin\face.jpg');
imshow(Image);
C = zeros(1:10);
for x = 1:16
i = randn(1);
Noise_x = imnoise(Image,'gaussian',i);
C{x} = Noise_x;
end
imshow(C(1));
Thank you in advance.
0 comentarios
Respuesta aceptada
Bob Thompson
el 27 de Mzo. de 2018
C = zeros(1:10);
This defines C as a double class array with 10 dimensions.
C{x} = ...
This attempts to populate a cell class element of C array, but you receive an error because C is a double class array. You can fix this by changing your original definition of C.
C = cell(1); % This will create a 1x1 array of blank cells
Then you can just use your C{x} line that you already have to populate the desired values into cell x.
1 comentario
Más respuestas (1)
Rik
el 27 de Mzo. de 2018
I suspect your should have looked something like this (note the commented lines and the comments)
%IM = imread('C:\Program Files\MATLAB\R2017a\bin\face.jpg');
%don't overwrite the image function
IM = imread('C:\Program Files\MATLAB\R2017a\bin\face.jpg');
imshow(IM);
%C = zeros(1:10);%creates a 10-D double array
C=cell(1,16);
for x = 1:16
i = randn(1);
Noise_x = imnoise(IM,'gaussian',i);
C{x} = Noise_x;
end
%imshow(C(1));%assumes C is a non-cell array
imshow(C{1});
0 comentarios
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!