Taking a string input and transferring it to a integer

2 Ansichten (letzte 30 Tage)
Jacob Belouin
Jacob Belouin am 14 Okt. 2021
Kommentiert: DGM am 15 Okt. 2021
I am trying to write a script to calculate the nominal kohms of a resistor. I need to create a menu of 10 colors and be able to assign those colors a number that I can use to create the final equasion. The numbers are integers ranging from 0 to 9 and there are three user selected inputs. Thanks in advance!
  1 Kommentar
DGM
DGM am 14 Okt. 2021
If you really insist on doing this with dialogs, you can use listdlg.
Otherwise, build a uifigure or something

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

DGM
DGM am 14 Okt. 2021
Bearbeitet: DGM am 15 Okt. 2021
Meh.
numbands = 4;
colornames = {'black','brown','red','orange','yellow','green','blue','violet','gray','white','gold','silver'};
tolerancemap = [1 2 0.5 0.25 0.1 0.05 5 1]; % in percent
multmap = [0:7 -1 -2];
digits = zeros(1,numbands-2);
for vb = 1:numbands
ps = sprintf('Color Band %d',vb);
if vb == numbands
%tol = listdlg('promptstring',ps,'selectionmode','single','liststring',colornames([2 3 6:9 11 12]));
tol = menu(ps,colornames([2 3 6:9 11 12]));
elseif vb == numbands-1
%multiplier = listdlg('promptstring',ps,'selectionmode','single','liststring',colornames([1:8 11 12]));
multiplier = menu(ps,colornames([1:8 11 12]));
else
%digits(vb) = listdlg('promptstring',ps,'selectionmode','single','liststring',colornames);
digits(vb) = menu(ps,colornames);
end
end
value = str2double(sprintf('%d',digits-1)) * 10^multmap(multiplier);
tol = tolerancemap(tol);
if value >= 1E6
fprintf('The resistor value is %.2f Mohms, with a tolerance of %.2f%%\n',value/1E6,tol)
elseif value >= 1E3
fprintf('The resistor value is %.2f kohms, with a tolerance of %.2f%%\n',value/1E3,tol)
else
fprintf('The resistor value is %.2f ohms, with a tolerance of %.2f%%\n',value,tol)
end
Now you can add the tempco band too.
  5 Kommentare
Jacob Belouin
Jacob Belouin am 15 Okt. 2021
Understanding how you approached this now, its a way more efficent method but my Professor is telling me it has to use the menu command rather than listdlg. I dont need the whole answer, but is there a way to index arrays within the menu command?
DGM
DGM am 15 Okt. 2021
Augh. I didn't even think about literally using menu(). I never use interactive stuff, so i don't remember any of these things.
I edited to add example usage of menu in place of listdlg(). The indexing is basically the same.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Data Type Conversion finden Sie in Help Center und File Exchange

Produkte


Version

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by