N-dimensional arrays are not supported.
5 次查看(过去 30 天)
显示 更早的评论
Hello All
I have a 3d matrix as below:
[l,r,h3]=size(H)
When I want to write eye(), as follows, I get an error.
Aeq=[H1 -eye(l)]
The error is:
N-dimensional arrays are not supported.
How can I solve it?
thanks
采纳的回答
Star Strider
2016-8-6
I have no idea what you’re doing or what result you want, or what ‘H’ or ‘H1’ are.
This runs without error:
H = randi(9,2,2,4); % Create ‘H’
[l,r,h3]=size(H);
H1 = H; % Assume ‘H1’ = ‘H’
Aeq=[H1 -repmat(eye(l), 1, 1, h3)] % Desired Result?
Perhaps some variation on this will work for you if this does not.
更多回答(1 个)
Konark Kelaiya
2016-8-6
Your H1 or H whatever the variable is 3D matrix however when you get the size of H with [I,r,h3] it will return matrix size values e.g if H is of 2x3x2 matrix then using size(H) returns value as I = 2,r =3 and h3 = 2.
Now when you use eye(I) , it will create identity matrix of 2x2 and not 3 dimensional , hence it wont work
you need to use
[H1 - eye([I r h3])]
or [H1 - eye(size(H))]
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!