Finite Temperature Variation - Heat Transfer

I am writing a code that displays temperature variation. There is a triangle section cut off of a square(nxn) that is exposed to convection heat transfer. The part that is cut off is a 90 degree triangle between i and n-.6*i. I need help defining this section for every row because the slope is not in one row. The cut out part is after a certain meter distance.

3 Commenti

Youssef  Khmou
Youssef Khmou il 12 Ott 2013
Modificato: Youssef Khmou il 12 Ott 2013
you mean the triangle has angles (45°,45°,90°)? can you explain where is the difficulty exactly ?
Yes, the triangle is at the top right corner of the square(nxn). I am having trouble identifying the cut off if the triangle on each row. The area is 1meter by 1meter and the missing area cut off is 1/2*.4^2. Giving a 45 degree angle.
Image Analyst
Image Analyst il 13 Ott 2013
Modificato: Image Analyst il 13 Ott 2013
If the triangle is formed by two sides and one side is "i" elements long, and the other side is "n-0.6*i" elements long, how is that a 45 degree angle for the hypoteneuse? To get 45 degrees, both sides would have to be the same length.

Accedi per commentare.

Risposte (3)

Image Analyst
Image Analyst il 13 Ott 2013
Modificato: Image Analyst il 13 Ott 2013
Do you mean like this:
clc;
n = 100
% Create sample random data.
myArray = randi(9, [n, n], 'uint8') + 100;
subplot(2, 2, 1);
imshow(myArray);
title('Original Image', 'FontSize', 20);
% Chop off i by n-6*i triangle
i = 4
xvertices = [0, n-6*i, 0];
yvertices = [0,0, i];
mask = poly2mask(xvertices, yvertices, n, n);
subplot(2,2,2);
imshow(mask);
title('Mask Image', 'FontSize', 20);
out = myArray .* uint8(~mask);
subplot(2,2,3);
imshow(out);
title('Output Image', 'FontSize', 20);
% Enlarge figure to full screen.
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0 0 1 1]);
Note: requires Image Processing Toolbox because of poly2mask.

2 Commenti

Kaelyn's comment moved here, since it's not an answer to her original question, but a comment on mine.
Yes but n and i will change according to the size of the mesh. The cut off of the triangle will be identified and used to calculate other temperatures. So I have been trying to use the mod function.
Image Analyst
Image Analyst il 13 Ott 2013
Modificato: Image Analyst il 13 Ott 2013
n and i are variables in my code. You can change them. You can do everything with a for loop, instead of poly2mask(), if you want.

Accedi per commentare.

Youssef  Khmou
Youssef Khmou il 13 Ott 2013
Modificato: Youssef Khmou il 13 Ott 2013
Kaelyn,
OK the problem now is clear , here is fast way
N=500; % more resolution better 2D heat conduction resolution .
H=ones(N);
M=flipud(triu(H)); % TOP RIGHT TRIANGLE
surface(M);
shading interp

6 Commenti

How can I attach this a bigger matrix. Would I just add on conditions.
what do you mean attaching? high number of dimensions? increase N
The triangle part of square matrix starts at .6 meters. The matrix is 1 by 1 meter. So the function you provided starts at n=1 (half the matrix equals zero). So I want to know can I start this function at .6 meters?
Youssef  Khmou
Youssef Khmou il 13 Ott 2013
Modificato: Youssef Khmou il 13 Ott 2013
then its not (45,45,90), as you confirmed,
N=100;
M=rot90(triu(ones(N),-60));
surface(M), shading interp
is the problem solved by this last instruction?

Accedi per commentare.

N=1000; % 1 meter sampled with 1000 Hz
p=0.6*N; % your 0.6 starting point .
M=zeros(N); % initial matrix
A=(N-p)/N; % the Coefficient for constructing the triangle
for n=1:N
M(n,1:A*n)=1;
end

Richiesto:

il 12 Ott 2013

Commentato:

il 13 Ott 2013

Community Treasure Hunt

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

Start Hunting!

Translated by