How to make a function output a matrix

I am trying to make a function that takes in multiple variables and outputs a matrix of values. The inputs are supposed to plug into the equation V, and output a matrix. My problem is that this outputs a vector instead of a matrix. How do I make it output a matrix?
function T = prob3_5(x,y,N,L,W,T1,T2)
V=zeros(1,length(x));
for n=1:2:N
for i=1:length(x)
V(i)=V(i)+(2/pi)*(2/n)*sin(n*pi*x(i)/L).*sinh(n*pi*y(i)/L)/sinh(n*pi*W/L);
end
T=(T2-T1)*V+T1;
end

3 个评论

You create a vector. How are we supposed to know what matrix you need to construct, when all we see is code that creates a vector?
% This is a Fourier series why do you want a matrix, it is just an array
% because you just summing up the solution at each point of x and y.
% The output is vector because T is V and V is defined as a vector V=zeros(1,length(x));
the answer should have the same number of columns as elements in X, and the same number of rows as elements in Y.

请先登录,再进行评论。

 采纳的回答

I think you need only one loop that accomulate the series. I am assuming x and y are sent to the function as vectors, then we creat grid out of them
T = prob3_5(x,y,N,L,W,T1,T2)
[x,y]=meshgrid(x,y);
V=zeros(size(x));
for n=1:2:N
V=V+(2/pi)*(2/n)*sin(n*pi*x/L).*sinh(n*pi*y/L)./sinh(n*pi*W/L);
T=(T2-T1)*V+T1;
end

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by