Number of elements mismatch.
1 次查看(过去 30 天)
显示 更早的评论
Hi everyone,
I have a dimension issue:
I have a Simulink Matlab Function block that has a [3x1] vector of values called pd as its input. This vector should turn into a [6x1] vector called pdot by adding three zeros to every element. Basically just resizing
from to it sounds rather simple but I can't get it to work. The code that I use in my Simulink function block is shown below.
function pdot = fcn(pd)
pdot = zeros(6,1);
temp = zeros(6,1);
for i = 1:length(pd)
pdot(i) = temp(i) + [pd(i); 0; 0; 0];
end
end
Thanks in advance for any tips or advice.
0 个评论
采纳的回答
Dave B
2021-10-12
This seems like you maybe over complicated it? Is it as simple as...
x=[1;3;5]
fcn(x)
function pdot = fcn(pd)
pdot=[pd;0;0;0];
end
2 个评论
Dave B
2021-10-12
Happy to help.
Two options:
Take the 51 x 6 and make it 6 x 1 x 51:
pdot=rand(51,6);
pdot=reshape(pdot.',6,1,51); % transpose then reshape
pd = rand(3,1,51);
pdot = padarray(pd, [3 0 0], 0, 'post'); % pad with 3 rows (0 columns, 0 in third dimension), with the value 0, padding on the 'bottom' not the 'top'
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Sources 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!