MATLAB MATLAB 3D Plot assistance needed

AI Thread Summary
The discussion revolves around plotting the temporal temperature distribution across a metal rod using MATLAB. The user has collected temperature data from six text files, each containing 20 values measured at intervals along the rod. The goal is to create a three-dimensional plot with the position along the rod on the y-axis, time on the x-axis, and temperature on the z-axis.The user has successfully loaded the data into vectors but is struggling with how to create the 3D plot. They are advised to use the `meshgrid` function to create matrices for the x and y axes, and to use the `surf` or `mesh` functions for plotting. However, they encounter an error indicating that the Z variable must be a matrix, not a vector or scalar. The user seeks further clarification on how to properly handle the data from the six text files to create the desired plot.
maxtor101
Messages
22
Reaction score
0
Hi guys! Kinda stuck here..

I'm trying to plot the temporal temperature distribution across a metal rod of length 1 meter. The rod is heated at one end and the temperature is measured every 5 cm along the meter rod every 10 minutes for an hour.

Basically I have 6 text files, each containing 20 temperature values. This will go on the z-axis.
Then I have a vector y = [0:5:100]; for the position along the rod. Then I have another vector t containing the times at which i measured the temperature.

So far I've used the load command to read in the data from the text files into 6 vectors. And I have the "position" vector y = [0:5:100]; . I'm not sure how to make this into a three dimensional plot though, I'm very new to matlab.

Any help would be greatly appreciated!
Thanks!
Max
 
Physics news on Phys.org
http://www.mathworks.com/help/techdoc/learn_matlab/f3-40352.html

You need to create a meshgrid and use surf.
 
Thanks for your reply, however I'm still unsure as to handle the 6 different text files.

Code:
load plot1.txt
load plot2.txt
load plot3.txt
load plot4.txt
load plot5.txt
load plot6.txt

for i=1:6,
    [X] = meshgrid(0:10:60);
    [Y] = meshgrid(0:5:100);       
    [Z] = plot(i);
    mesh(X,Y,Z,'EdgeColor','black')
end

I'm guessing it will be something along the lines of this...?
 
But this throws up an error
Code:
 ? Error using ==> mesh at 80
Z must be a matrix, not a scalar or vector.

Error in ==> plots at 14
    mesh(X,Y,Z,'EdgeColor','black')

Any ideas?
 

Similar threads

Replies
1
Views
2K
Replies
2
Views
3K
Replies
4
Views
2K
Replies
4
Views
1K
Replies
1
Views
3K
Replies
2
Views
2K
Replies
1
Views
2K
Replies
1
Views
2K
Back
Top