Delete specific numbers from cell array

4 views (last 30 days)
I have a 1801 x 20 data matrix where one column is one set of data. I need to calculate the log diff and I I actually wanted to clear each column from the zeros, but each column has a different amount of zeros within the data (which is not possible in a matrix). I did this so far:
p3=num2cell(p2) ;
But both didnt work.
Marie P.
Marie P. on 18 Nov 2020
No it cant because I loose a lot of values when I have some zeros within my data.
When I calculate the diff(log(data), I get an Inf or -Inf value from value to zero and from zero to value. When I firstly clear my data from the zeros, I avoid that.

Sign in to comment.

Accepted Answer

KALYAN ACHARJYA on 18 Nov 2020
for i=1:20
The result is a cell array, whose individual elements having coloum of the p2 martix without zero. Hence individual cell elements will have different length after zero deletion.
  1 Comment
Marie P.
Marie P. on 18 Nov 2020
When I use that on the into cells transformed data I get again "Operator '==' is not supported for operands of type 'cell'."
And If I use it on the matrix data, I get a cell where the data is stored(?) but can't see the values itself. May be a dumb question but how do I see the data itself and can work with it?

Sign in to comment.

More Answers (1)

madhan ravi
madhan ravi on 18 Nov 2020
p2 = [1, 2; 0, 1]
p2 = 2×2
1 2 0 1
p3 = num2cell(p2, 1);
Wanted = cellfun(@nonzeros, p3, 'un', 0)
Wanted = 1x2 cell array
{[1]} {2×1 double}




Community Treasure Hunt

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

Start Hunting!