diff and 3D-matrix

5 views (last 30 days)
Bernd  Ab
Bernd Ab on 11 Feb 2017
Answered: Star Strider on 11 Feb 2017
Dear all, I am reverse engineering a piece of the data evaluation code that is used in my university/ workgroup and i have a hard time understanding what seems to be a simple thing. I do understand what the output should be hover.The code is inside a loop but for now i just need to figure out what those two lines do in principle?
Fx(1:size(my_matrix,1)-1,i,j)=diff(my_matrix(:,i,j)/(a_scalar_dimension/1000));
Fx(size(my_matrix,1),i,j)=0;
Thank you very much in advance

Answers (1)

Star Strider
Star Strider on 11 Feb 2017
The first assignment:
Fx(1:size(my_matrix,1)-1,i,j)=diff(my_matrix(:,i,j)/(a_scalar_dimension/1000));
simply seems to take the consecutive differences (using the diff funciton) over the rows of ‘my_matrix’ for the fixed second and third dimensions ‘i’ and ‘j’. We can assume this is in a nested loop of some design.
The second assignment:
Fx(size(my_matrix,1),i,j)=0;
sets the last element of ‘Fx’ for the same ‘i’ and ‘j’ coordinates to zero, apparently to equalise the row sizes of ‘Fx’ and ‘my_matrix’. In recent MATLAB versions, using end in place of the size call would have the same effect:
Fx(end+1,i,j)=0;
That’s my best guess, anyway.

Categories

Find more on MATLAB in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!