Borrar filtros
Borrar filtros

Very tricky:Manipulation with complex array

2 visualizaciones (últimos 30 días)
Jovan Jovovic
Jovan Jovovic el 19 de Sept. de 2022
Editada: Jovan Jovovic el 19 de Sept. de 2022
I need to write a m.file function for this.
For example
array X = [4, 1, 1, 3, 8, 12], I need to make the array which will contain bold ones as well Y = [4, 1, 5, 1, 3, 4, 8, 12, 20].
  3 comentarios
Jovan Jovovic
Jovan Jovovic el 19 de Sept. de 2022
I was thinking to make 3 sub arrays,one array will go with even(2:2:end),one will go with odd(1:2:end),and one will be sum of first element of the both arrays.
After that i would combine it first element of each array,than second element of each array.
The problem is that i need it to make in a m.file with kinda a algorithm method.
However i will try to make it with function reshape.
If you have some additional advice i would be thankful
Jovan Jovovic
Jovan Jovovic el 19 de Sept. de 2022
Thank you tho

Iniciar sesión para comentar.

Respuesta aceptada

Fabio Freschi
Fabio Freschi el 19 de Sept. de 2022
Editada: Fabio Freschi el 19 de Sept. de 2022
Following @Paul suggestion
% original vector
X = [4, 1, 1, 3, 8, 12];
% reshape to have 2xN vector
W = reshape(X,2,[]);
% calculate the sum
S = sum(W,1);
% concat the vector and reshape
Y = reshape([W; S],1,[])
Y = 1×9
4 1 5 1 3 4 8 12 20
  3 comentarios
Fabio Freschi
Fabio Freschi el 19 de Sept. de 2022
Why using for loops when the vectorized version is effective, cleaner and more efficient?
Jovan Jovovic
Jovan Jovovic el 19 de Sept. de 2022
Editada: Jovan Jovovic el 19 de Sept. de 2022
Because this tasks want from me to learn logic of the Matlab.I know its absolutely better like this.
But maybe i will get problem like this and i will be stucked if i dont know some function.
Write a m.file which is asking to enter array X (integer numbers),which will make a new array Y .Elements of the array Y are sum from even digits of elements array X. If some element of array X is not inteneger,make a comment about error.
For example X = [81, 19, 102, 22, 12, 21] Y = [8, 0, 2, 4, 2, 2]
And I will need to use the loop to see is there a even digit in every number

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Resizing and Reshaping Matrices 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