Very tricky:Manipulation with complex array

2 views (last 30 days)
Jovan Jovovic on 19 Sep 2022
Edited: Jovan Jovovic on 19 Sep 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 CommentsShow 1 older commentHide 1 older comment
Jovan Jovovic on 19 Sep 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.
Jovan Jovovic on 19 Sep 2022
Thank you tho

Fabio Freschi on 19 Sep 2022
Edited: Fabio Freschi on 19 Sep 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 CommentsShow 1 older commentHide 1 older comment
Fabio Freschi on 19 Sep 2022
Why using for loops when the vectorized version is effective, cleaner and more efficient?
Jovan Jovovic on 19 Sep 2022
Edited: Jovan Jovovic on 19 Sep 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