Why du/dx obtained from excel and Matlab gives different results?

2 次查看(过去 30 天)
Hi
I have csv file with some columns and I want to find the du/dx from two column named as u and x. I did it in excell as well as matlab but both the results are different. Can anyone please help to know why they are diffrent? Am I doing any mistake while calciulating the derivative in matlab. I want to do this for all the csv files but I wanted to varify first for one file. Here is my code that I used in matlab and the csv file named as 0001_derivative in which I have obtained du/dx i.e. (u2-u1)/(x2-x1)and named as "s"
Folder='G:\testcodeforcsvcolumn'
Data = readtable('0001.csv');
U = Data.u;
X = Data.x;
dudx = gradient(U)./gradient(X);
Thank you very much for helping me to learn.
  4 个评论
Torsten
Torsten 2023-1-12
It's nonsense to calculate dudx this way since your X data are not in increasing order.
You must first order X and then arrange U according to the X-ordering.
Raushan
Raushan 2023-1-12
Thanks for the suggestion. You are right we can arrange them either in increasing or decreasing order, but that will be manipulation with the data. We expect data to vary like this. Code is working for 1 file but not for all 5 files. Can you please help me to implement a for loop for 5 files, so that I will have 5 different dudx, I am trying but getting dimension related error.

请先登录,再进行评论。

回答(1 个)

Torsten
Torsten 2023-1-11
If the X grid is equidistant,
dudx = gradient(U,X(2)-X(1))
  2 个评论
Raushan
Raushan 2023-1-11
The difference is 5 between the x values but us not in increasing or decreasing oredr. Sometimes it is in increasing and some times it is in decreasing order.
Raushan
Raushan 2023-1-11
I tried this but still the same value as before. Its not matching with ''s'' column of 0001_derivative.

请先登录,再进行评论。

产品


版本

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by