MATLAB 3D Plot assistance needed

Click For Summary

Discussion Overview

The discussion revolves around creating a 3D plot in MATLAB to visualize the temporal temperature distribution across a metal rod. Participants are addressing the challenges of handling multiple text files containing temperature data and the correct implementation of MATLAB functions for 3D plotting.

Discussion Character

  • Technical explanation
  • Homework-related
  • Mathematical reasoning

Main Points Raised

  • Max describes the problem of plotting temperature data from six text files, detailing the structure of the data and the desired outcome for the 3D plot.
  • Max provides a visual reference for the expected plot format.
  • One participant suggests using the meshgrid function and surf for creating the plot.
  • Max expresses uncertainty about how to manage the data from the six text files in the plotting process.
  • Max attempts to implement a loop to create the mesh plot but encounters an error indicating that Z must be a matrix, not a scalar or vector.
  • Participants are discussing the correct way to structure the data for the mesh function.

Areas of Agreement / Disagreement

The discussion remains unresolved, with participants providing suggestions but no consensus on the correct approach to handle the data and create the plot.

Contextual Notes

Max's implementation attempts are limited by the requirement that Z must be a matrix, and there are unresolved issues regarding how to properly format the data from the text files for use in the mesh function.

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 ·
Replies
1
Views
2K
  • · Replies 2 ·
Replies
2
Views
4K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 5 ·
Replies
5
Views
3K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 6 ·
Replies
6
Views
2K