How can I generate a matrix?

2 visualizaciones (últimos 30 días)
net
net el 20 de Nov. de 2013
Comentada: net el 20 de Nov. de 2013
Hi, I have two array and I want to generate one matrix according to these arrays.
For example:
a={2,5,2,4,2,3,4,4,8}
b={1,3,1,3,4,2,3,3,2}
Matrix is 2 to 1 -> 1, 5 to 3 -> 1, 2 to 1 -> 2 (again) ...
Output:
Thanks for your helps.

Respuesta aceptada

Simon
Simon el 20 de Nov. de 2013
Hi!
Loop over your a/b vectors and increase the specified matrix element:
M = zeros(max(a), max(b));
for n = 1:length(a)
M(a(n), b(n)) = M(a(n), b(n)) + 1;
end
  1 comentario
net
net el 20 de Nov. de 2013
Thanks for your help.

Iniciar sesión para comentar.

Más respuestas (2)

Laurent
Laurent el 20 de Nov. de 2013
a={2,5,2,4,2,3,4,4,8};
b={1,3,1,3,4,2,3,3,2};
yourmat=zeros(8,5);
for ii=1:length(a)
yourmat(a{ii},b{ii})=yourmat(a{ii},b{ii})+1;
end
Why are you using a cell array for a and b?
  2 comentarios
net
net el 20 de Nov. de 2013
Array "a" is my states and "b" is my observations. I want to know that states and observations amount.
Sorry for my english.
net
net el 20 de Nov. de 2013
Yes you are right, I wrote with wrong parenthesis. Thanks.

Iniciar sesión para comentar.


Andrei Bobrov
Andrei Bobrov el 20 de Nov. de 2013
Editada: Andrei Bobrov el 20 de Nov. de 2013
a=[2,5,2,4,2,3,4,4,8];
b=[1,3,1,3,4,2,3,3,2];
sz = [8 5];
out = nan(sz + 1);
out(2:end,2:end) = accumarray([a(:),b(:)],1,sz);
out(1,2:end) = 1:sz(2);
out(2:end,1) = 1:sz(1);
  2 comentarios
Shani
Shani el 20 de Nov. de 2013
Andrei do you know about neural networks?
net
net el 20 de Nov. de 2013
Thanks for your help.

Iniciar sesión para comentar.

Categorías

Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by