Differentiate and store results in matrix
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Benjamin
am 5 Nov. 2018
Bearbeitet: Star Strider
am 5 Nov. 2018
I have two matrices. The first matrix is Density and it 311x1. The second matrix is Temperature and it is 311x21. The column in density matrix corresponds to each distinct column in temperature matrix.
So if I want to plot the first line I could just do:
plot(Density, Temperature(:,1))
and second line would just be:
plot(Density, Temperature(:,2))
How can I create a new matrix that takes the derivative of each temperature line (isotherm) with respect to density, and put this in a new matrix, such as diffTemperature?
0 Kommentare
Akzeptierte Antwort
Star Strider
am 5 Nov. 2018
Try this:
Density = (0:310)'; % Create Data
Temperature = sin((0:310)'*(0:20)*2*pi/20); % Create Data
dTdD = gradient(Temperature, mean(diff(Density))); % Equal Spacing
dTdD = gradient(Temperature) ./ gradient(Density); % Unequal Spacing
figure
plot(Density, Temperature(:,5))
hold on
plot(Density, dTdD(:,5))
hold off
grid
title('Example')
legend('Temperature', 'Derivative')
xlim([0 30])
8 Kommentare
Star Strider
am 5 Nov. 2018
Bearbeitet: Star Strider
am 5 Nov. 2018
Great!
Yes. That will work for equally-spaced data.
EDIT — An alternative could also be the del2 (link) function on ‘Temperature’ (or any other dependent variable), not the derivative, (although you may need to multiply the result by 4). The syntax is essentially the same.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!