Trying to create a multidimensional array

2 次查看(过去 30 天)
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?

采纳的回答

Dave B
Dave B 2021-8-3
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
psi = 1×3 cell array
{10×4 double} {10×4 double} {10×4 double}
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)
ans = 1×3
10 4 3
  1 个评论
Josh Rizzolo
Josh Rizzolo 2021-8-3
Thanks for getting back to me so fast.
Being completely honest: I'm not 100% on what this array means or how it's supposed to look. The code was basically trying to assemble g matrices of the form given. But, the paper I'm pulling the formula from is certainly trying to concatenate them all into a matrix to do math with.
Constants g, N, and h will all fluctuate depending on the context of the function, hence why they aren't predefined in the code (g = N - h + 1 as a quick aside).
I completely spaced on the proper syntax for putting 2D matrices into 3D ones, so I will try making the adjustment in your second suggestion first. I still anticipate problems stemming from the varying dimensions however.

请先登录,再进行评论。

更多回答(0 个)

类别

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

Community Treasure Hunt

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

Start Hunting!

Translated by