cell contents assignment to a non-cell array object
3 views (last 30 days)
Show older comments
Ahmed Saafan
on 27 Mar 2018
Commented: Ahmed Saafan
on 27 Mar 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 Comments
Accepted Answer
Bob Thompson
on 27 Mar 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.
More Answers (1)
Rik
on 27 Mar 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 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!