How to have individual numbers combine into a larger number
Show older comments
So I need to write some code that can combine multiple numbers together example so input1 = 1, input2 = 4 those 2 numbers should then = 14 instead of 5 if that makes sense. Basically I need to combine those numbers instead of adding them.
fprintf('Number of bands (4 or 5)');
disp("Select the colours from below, Enter using number:")
disp('0. Black')
disp('1. Brown')
disp('2. Red')
disp('3. Orange')
disp('4. Yellow')
disp('5. Green')
disp('6. Blue')
disp('7. Violet')
disp('8. Grey')
disp('9. White')
disp('10. Gold')
disp('11. Silver')
Bandtype = input('Please select number of bands (4 or 5): '); %Takes user input
switch Bandtype
case 4
disp('Placeholder')
Didget1 = input('Please select colour of first band (0 - 9):');
Didget2 = input('Please select colour of second band (0 - 9):');
Multiplier = input('Please select the colour of the third band (0-7, 10, 11):');
Tolerence = input('Please select the colour of the fourth band (1-2, 10-11):');
case 5
disp('Placeholder')
Didget1 = input('Please select colour of first band (0 - 9):');
Didget2 = input('Please select colour of second band (0 - 9):');
Didget3 = input('Please select colour of third band (0 - 9):');
Multiplier = input('Please select the colour of the fourth band (0-7, 10, 11):');
Tolerence = input('Please select the colour of the fifth band (1-2, 10-11):');
end
switch Didget1
case 0
Black = 0;
case 1
Brown = 1;
case 2
Red = 2;
case 3
Orange = 3;
case 4
Yellow = 4;
case 5
Green = 5;
case 6
Blue = 6;
case 7
Violet = 7;
case 8
Grey = 8;
case 9
White = 9;
end
switch Didget2
case 0
Black = 0;
case 1
Brown = 1;
case 2
Red = 2;
case 3
Orange = 3;
case 4
Yellow = 4;
case 5
Green = 5;
case 6
Blue = 6;
case 7
Violet = 7;
case 8
Grey = 8;
case 9
White = 9;
end
switch Didget3
case 0
Black = 0;
case 1
Brown = 1;
case 2
Red = 2;
case 3
Orange = 3;
case 4
Yellow = 4;
case 5
Green = 5;
case 6
Blue = 6;
case 7
Violet = 7;
case 8
Grey = 8;
case 9
White = 9;
end
switch Multiplier
end
switch Tolerence
end
if Bandtype < 4 && Bandtype > 5
disp('Invalid input please select 4 or 5!')
else
end
Accepted Answer
More Answers (2)
Bruno Luong
on 17 Apr 2024
Edited: Bruno Luong
on 17 Apr 2024
One way:
UserIput = [1 2 3 10 11];
%% Coding
X = polyval(UserIput, 16);
X % Combine number
clear UserIput % forget the previous data
%% Decoding: Do the revers compute UserInput from X
UserIput = dec2hex(X)-'0';
A = 'A'-'0';
Age = UserIput >= A;
UserIput(Age) = UserIput(Age)-A+10;
% The result
UserIput
Voss
on 17 Apr 2024
One option is to use the 's' second input to input, which signifies that the user input is returned as a character vector. Then you can simply horizontally concatenate the inputs together. If you store those inputs in a cell array, that concatenation is easy to do. Here's an example:
fprintf('Number of bands (4 or 5)');
disp("Select the colours from below, Enter using number:")
disp('0. Black')
disp('1. Brown')
disp('2. Red')
disp('3. Orange')
disp('4. Yellow')
disp('5. Green')
disp('6. Blue')
disp('7. Violet')
disp('8. Grey')
disp('9. White')
disp('10. Gold')
disp('11. Silver')
while true % loop until valid Bandtype is given
Bandtype = input('Please select number of bands (4 or 5): '); %Takes user input
if isequal(Bandtype,4) || isequal(Bandtype,5)
% if 4 or 5 is given, exit the loop
break
end
disp('Invalid input please select 4 or 5!')
end
Ordinals = {'first','second','third','fourth','fifth'};
NDidgets = Bandtype-2; % first Bandtype-2 numbers are digits, i.e., Bandtype==4 -> 2 digits; Bandtype==5 -> 3 digits
Didgets = cell(1,NDidgets); % initialize a cell array of the right size
for ii = 1:NDidgets % for loop to get the digits
Didgets{ii} = input(sprintf('Please select colour of %s band (0 - 9): ',Ordinals{ii}),'s');
end
% horizontally concatenate the digits
result = [Didgets{:}];
Multiplier = input(sprintf('Please select the colour of the %s band (0-7, 10, 11): ',Ordinals{NDidgets+1}));
Tolerence = input(sprintf('Please select the colour of the %s band (1-2, 10-11): ',Ordinals{NDidgets+2}));
Categories
Find more on Language Support in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!