Trying to create a multidimensional array
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
I am trying to implement the formula below, where each is an element of the larger ψ vector of length g.
So far I have this
psi = zeros(1,g);
for i = 1:g
psi(i) = [zeros(h,(i-1)) eye(h) zeros(h, (N-i-h+1))]';
end
but I receive the error
"Unable to perform assignment because the left and right sides have a different number of elements."
which makes sense. Is there a way to do what I am attempting, or am I SOL?
0 Commenti
Risposta accettata
Dave B
il 3 Ago 2021
I'm not 100% sure I follow the goal, the code you've pasted appears to make g matrices, each with h columns and the number of rows is (i-1) + h + max((N-i-h+1),0)...(I think?)
What shape would you like the result to take? To store the matrices separately, you can use a cell array:
h=4;
g=3;
N=10;
psi = cell(1,g);
for i = 1:g
psi{i} = [zeros(h,(i-1)) eye(h) zeros(h, (N-i-h+1))]';
end
psi
If you're using h,g,N that produce consistent numbers of rows (as in the above case) you could store this in a 3-d matrix
h=4;
g=3;
N=10;
psi = zeros(N,h,g);
for i = 1:g
psi(:,:,i) = [zeros(h,(i-1)) eye(h) zeros(h, (N-i-h+1))]';
end
size(psi)
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Discrete Math in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!