Is there no one with the knowledge of cell operation :(

Hi. i have been asking this question again and again..with no real answer to it..it is supposed to be simple operation. but matlab is disappointing me now.
I have data in 1 cell. i want the values greater than 230 to be moved or copied into another cell. see pic.
so values at V{:,2} is 231,06 and is greater than 230, so with a code it should be moved or copied to next column.
a simple for loop or if ?
suggestions or help please?

Answers (1)

First, you asked the first question on here just a few hours ago. Contributors on this page are unpaid volunteers so it cannot be expected to get an answer immediately.
However, good job clarifying your question with the image!
C = {'hello world';245;220};
isAbove230 = @(x)isnumeric(x) && x>230; % define a function to identify elements above 230
idx = cellfun(isAbove230,C); % where are they?
C(idx) = []; % remove offending elements
Or to make a copy
C230 = C(idx);

5 Comments

And this isn't my only volunteer work.
For bonus points Sean, and a vote, show how it can be done with the nice new capability of a table.
awda, a nice discussion of cell arrays is in the FAQ: http://matlab.wikia.com/wiki/FAQ#What_is_a_cell_array.3F
Well this would be making the assumption that the first element of the cell is the variable name. Otherwise, if the data is heterogenous elsewhere this would just be a cell array as a variable of a table.
Here is a small example with that assumption:
C = {'HelloWorld';245;220};
T = cell2table(C(2:end),'VariableNames',C(1))
%%Now a few different ways:
FirstWay = T.HelloWorld(T.HelloWorld>230)
SecondWay = T(T{:,1}>230,1)
You can use any combination of T.VarName or T{:,column} in the logical index.
You got it. By the way, tables are only in R2013b and later.
I am not convinced that the entries are numeric; I think maybe they are all strings.

This question is closed.

Asked:

on 17 Mar 2014

Closed:

on 20 Aug 2021

Community Treasure Hunt

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

Start Hunting!