How to combine multiple numbers into 1 number?
14 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hieu
el 25 de Feb. de 2023
Comentada: Steven Lord
el 25 de Feb. de 2023
I have the numbers R1, R2, Zr1, that I want to fuse together into 24000 . Zr1 is an array, while R1 and R2 are double. I have tried strcat but it only produces 240 0 0 which is not the intended 24000
R1 = 2
R2 = 4
Zr1 = 0 0 0
1 comentario
Stephen23
el 25 de Feb. de 2023
"Zr1 is an array, while R1 and R2 are double"
All doubles are arrays. Scalars are not a separate type, because in MATLAB everything is an array:
Respuesta aceptada
Stephen23
el 25 de Feb. de 2023
Editada: Stephen23
el 25 de Feb. de 2023
General solution:
R1 = 2;
R2 = 4;
Zr1 = [0,0,0];
V = [R1,R2,Zr1];
N = 10.^(numel(V)-1:-1:0) * V(:)
4 comentarios
Stephen23
el 25 de Feb. de 2023
"can you explain how N = 10.^(numel(V)-1:-1:0) * V(:) works?"
Break code down to know how it works. You can do this yourself.
R1 = 2;
R2 = 4;
Zr1 = [0,0,0];
V = [R1,R2,Zr1] % so V is a 1x5 vector: [10000's,1000's,100's,10's,1's]
Clearly all we need to do is to multiply the elements of V by the corresponding power of ten, and then add them together. Note that [10000,1000,100,10,1] is just [1e4,1e3,1e2,1e1,1e0] which is just 10.^[4,3,2,1,0]. So that is very easy to generate:
P = numel(V)-1:-1:0
Q = 10.^P
Then one simple matrix multiplication does both the multiplying and the addition:
Q * V(:)
Steven Lord
el 25 de Feb. de 2023
Another way to generate the Q vector is with logspace.
Q = logspace(4, 0, 5)
Más respuestas (1)
Alan Stevens
el 25 de Feb. de 2023
Editada: Alan Stevens
el 25 de Feb. de 2023
Do you mean
R1 = 2; R2 = 4; Zr1 = [0 0 0];
R = R1*10^4+R2*10^3+Zr1(1)*10^2+Zr1(2)*10+Zr1(3)
Alternatively:
R1 = 2; R2 = 4; Zr1 = [0 0 0];
R = [R1, R2, Zr1]
M = 10.^[4 3 2 1 0]
R = M*R'
0 comentarios
Ver también
Categorías
Más información sobre Logical 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!