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 Comments

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.
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.

Sign in to comment.

Answers (3)

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 Comments

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.
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.

Sign in to comment.

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 Comments

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?
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?

Sign in to comment.

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

Categories

Find more on General Applications in Help Center and File Exchange

Asked:

on 12 Oct 2013

Commented:

on 13 Oct 2013

Community Treasure Hunt

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

Start Hunting!