How can I generate a matrix?

1 Ansicht (letzte 30 Tage)
net
net am 20 Nov. 2013
Kommentiert: net am 20 Nov. 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.

Akzeptierte Antwort

Simon
Simon am 20 Nov. 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

Weitere Antworten (2)

Laurent
Laurent am 20 Nov. 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 Kommentare
net
net am 20 Nov. 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 am 20 Nov. 2013
Yes you are right, I wrote with wrong parenthesis. Thanks.

Melden Sie sich an, um zu kommentieren.


Andrei Bobrov
Andrei Bobrov am 20 Nov. 2013
Bearbeitet: Andrei Bobrov am 20 Nov. 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 Kommentare
Shani
Shani am 20 Nov. 2013
Andrei do you know about neural networks?
net
net am 20 Nov. 2013
Thanks for your help.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by