Making bigger matrix with smaller matrixes elements.
Mostrar comentarios más antiguos
I'm assembling a bigger matrix with elements of other smaller matrixes. in my method I build a connecting vector for example C=[1 5 6 7 8 9] when in each element like for example C(2)=5, 2 is a local dimension in smaller matrix and 5 is a global dimension in main matrix which is assembled.
If I want to use easy code writing I should use this kind of coding:
%for i=1:size(C,2)
for j=1:size(C,2)
B(C(i),C(j))=A(i,j)
but I'm trying to use Matlab special features in matrix calculations to put A with local dimension in B with global dimension. because Matlab features are fast and need less code writing.
Note: A and B are n*n and m*m matrixes.
3 comentarios
Image Analyst
el 21 de Abr. de 2013
First of all, let's see if this is what you meant (since your code does not run as-is, and I tried to fix it but am not sure I got what you intended):
C=[1 5 6 7 8 9]
A = magic(9); % Some sample data.
for i=1:size(C, 1)
for j=1:size(C, 2)
B(C(i),C(j))=A(i,j);
end
end
B
Results in command window:
C =
1 5 6 7 8 9
B =
47 0 0 0 58 69 80 1 12
Ayob
el 21 de Abr. de 2013
Image Analyst
el 21 de Abr. de 2013
Editada: Image Analyst
el 21 de Abr. de 2013
Please take note that A is a 2D 9 by 9 matrix. And B ended up as a 1D row vector because your loop over i only went from 1 to size(C,1), in other words from 1 to 1 so it did just one row. That was your code, not mine, though you commented it out. That's why I asked you if my attempts to fix your code were correct, which you said it was.
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre Language Fundamentals en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!