I am making a program that converts Roman numerals to numerical values. My current code is below.
%%Roman Numeral Conversion
%Declare variables
I=1;V=5;X=10;L=50;C=100;D=500;M=1000;%input Roman numeral
Roman=input('Roman numeral: ','s')letters=cellstr(Roman')'for n=1:length(letters) if (strcmp(letters(n),'I'))||(strcmp(letters(n),'i')) letters(n)=1; elseif (strcmp(letters(n),'V'))||(strcmp(letters(n),'v')) letters(n)=5; elseif (strcmp(letters(n),'X'))||(strcmp(letters(n),'x')) letters(n)=10; elseif (strcmp(letters(n),'L'))||(strcmp(letters(n),'l')) letters(n)=50; elseif (strcmp(letters(n),'C'))||(strcmp(letters(n),'c')) letters(n)=100; elseif (strcmp(letters(n),'D'))||(strcmp(letters(n),'d')) letters(n)=500; elseif (strcmp(letters(n),'M'))||(strcmp(letters(n),'m')) letters(n)=1000; else disp('Not valid entries') break endendnumber=sum(letters)text=sprintf(Roman,'= %d',number)disp(text)
When I run this, I get the error below when I try to substitute the letter for its corresponding numerical value.
Conversion to cell from double is not possible.Error in Roman_Numeral_Conversion (line 21) letters(n)=10;How can I avoid this problem?
Best Answer