I have a table test that says
month
--
'January'
'JANUARY'
I want to replace 'JANUARY' by 'January':
month
--
'January'
'January'
I tried strcmp but I got an error message "conversion to cell from char is not possible." Please advise.

 Akzeptierte Antwort

Mara
Mara am 18 Jun. 2020
Bearbeitet: Mara am 18 Jun. 2020

0 Stimmen

test = table();
test.month = 'JANUARY';
test.month = lower(test.month); %writes it in lower case letters
or you can as well just replace it by your desired input
test.month = 'january';
P.S. You do not have a string but a character (char)

5 Kommentare

alpedhuez
alpedhuez am 18 Jun. 2020
Bearbeitet: alpedhuez am 18 Jun. 2020
IQ=IQ+1;
Is it possible to have 'January' that is the first letter capital but the followins are lower?
Mara
Mara am 18 Jun. 2020
you can index into your character like a normal array: test.month(2:end) = lower(test.month(2:end)), so that the first character is not changed
alpedhuez
alpedhuez am 18 Jun. 2020
Bearbeitet: alpedhuez am 18 Jun. 2020
It only works for the first row.
Mara
Mara am 18 Jun. 2020
Bearbeitet: Mara am 18 Jun. 2020
then you have to specify that you want every row:
test.month(:,2:end) = lower(test.month(:,2:end));
alpedhuez
alpedhuez am 18 Jun. 2020
Bearbeitet: alpedhuez am 18 Jun. 2020
IQ=IQ+1; % Thank you.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Deepak Gupta
Deepak Gupta am 18 Jun. 2020

0 Stimmen

I am providing a solution, i suspect it's not the ideal solution but it should work.
test = table();
test.month{1} = 'JANUARY';
test.month{2} = 'January';
for index = 1:length(test.month)
if(test.month{index}=='JANUARY')
test.month{index} = 'January';
end
end

1 Kommentar

It depends on whether you have a cell array containing characters or characters solely. From the previous error message that occured ("conversion to cell from char is not possible.") , I concluded, that it is stored as characters only. In which case it does not let you index with curly braces
this worked for me:
test = table();
test.month = {'JANUARY'; 'FEBRUARY'; 'MARCH'}; %cell
test.month = char(test.month); %conversion to character array
test.month(:,2:8) = lower(test.month(:,2:8)); %indexing with normal braces

Melden Sie sich an, um zu kommentieren.

Kategorien

Produkte

Version

R2020a

Tags

Gefragt:

am 18 Jun. 2020

Bearbeitet:

am 18 Jun. 2020

Community Treasure Hunt

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

Start Hunting!

Translated by