Computational problem

2 次查看(过去 30 天)
Hi
this is a semplification of my problem. I have 2 matrix
A=(1:1:4)';
B=(10:10:120)';
and I need to define a new matrix (column vector) C that is composed by 12 elements. The first 3 elements are the first term of A, the seconds 3 elements are the second term of A, and so on. In this case C=[1 1 1 2 2 2 3 3 3 4 4 4]' How could I do? take in consideration that in reality I cant define a new matrix. The real problem is:
T=1200;
n=6
m=5
g=m*n
p = 2:(n-1);
for j1 = numel(p):-1:1
cc(:,j1) = (2+(m*(p(j1)-1))):1:(m*p(j1)-1);
end
cc = cc(:).';
((2.718.^(-(m-rem(cc,m)-1)))') .* (T^4-(x(p*m+g).^4))';
i.e. B i.e. A
the first part is a column vector of 12 elements and the second part is a column vector of 4 elements. (the term (x(p*m+g) is part of a column vector and is composed of 4 elements). So I need to get a column vector of 12 elemets from the second part of the code without define a new matrix and it must be define as C. Help me!!!

采纳的回答

Walter Roberson
Walter Roberson 2012-3-27
For the first part of the question, the solution is
C = kron(A, ones(3,1));

更多回答(1 个)

Jonathan Sullivan
Jonathan Sullivan 2012-3-27
You might not need to. It sounds like bsxfun would help you out. You essencially want to multiply every element of vector A with every element of vector B.
Check this out.
A=(1:1:4); % row vector
B=(10:10:120)'; % column vector
C = bsxfun(@times,A,B) % matrix

类别

Help CenterFile Exchange 中查找有关 Mathematics 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by