# How to have individual numbers combine into a larger number

7 visualizaciones (últimos 30 días)
Methat el 17 de Abr. de 2024
Respondida: Voss el 17 de Abr. de 2024
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
##### 0 comentariosMostrar -2 comentarios más antiguosOcultar -2 comentarios más antiguos

Iniciar sesión para comentar.

Ramtej el 17 de Abr. de 2024
Hey,
Simplest approach is to use sprintf function to format the numbers to form a single final string and convert it into double using str2double function.
inputs = [1, 4, 3, 2]; % Example array of numbers
% Concatenate using sprintf
combinedStr = sprintf('%d', inputs);
% Convert to number
combinedNumber = str2double(combinedStr);
##### 0 comentariosMostrar -2 comentarios más antiguosOcultar -2 comentarios más antiguos

Iniciar sesión para comentar.

### Más respuestas (2)

Bruno Luong el 17 de Abr. de 2024
Editada: Bruno Luong el 17 de Abr. de 2024
One way:
UserIput = [1 2 3 10 11];
%% Coding
X = polyval(UserIput, 16);
X % Combine number
X = 74667
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
UserIput = 1x5
1 2 3 10 11
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
##### 0 comentariosMostrar -2 comentarios más antiguosOcultar -2 comentarios más antiguos

Iniciar sesión para comentar.

Voss el 17 de Abr. de 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}));
##### 0 comentariosMostrar -2 comentarios más antiguosOcultar -2 comentarios más antiguos

Iniciar sesión para comentar.

### Categorías

Más información sobre Structures en Help Center y File Exchange.

### Community Treasure Hunt

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

Start Hunting!

Translated by