Set negative values to zero in just one column of tables in 1 x 71 cell

3 vues (au cours des 30 derniers jours)
BN
BN le 29 Jan 2020
Réponse apportée : Allen le 29 Jan 2020
I have 1 x 71 cell arrays that contain 71 tables. I want to set all negative values in the rrr24 column of all tables into zero. I tried some ways but always I get various errors:
first try:
headers = {'rrr24'};
for i = 1:numel(C)
colIdx = ismember(C{i}.Properties.VariableNames, headers);
C{i}(:,colIdx)< 0 = 0
end
Second try:
headers = {'rrr24'};
index=find(C.Properties.VariableNames, headers <0);
precip(index)=0;
Any advice is appreciated.
Thank You

Réponse acceptée

Allen
Allen le 29 Jan 2020
Assuming that each table contains a variable name of 'rrr24', then the following should work.
for i=1:length(C)
C{i}{C{i}{:,'rrr24'}<0,'rrr24'} = 0;
end
If it is possible that 'rrr24' is not a variable name for one or more of the tables, then you can add an if-statement to check for its existance first.
for i=1:length(C)
if any(contains(C{i}.Properties.VariableNames,'rrr24'))
C{i}{C{i}{:,'rrr24'}<0,'rrr24'} = 0;
end
end

Plus de réponses (0)

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by