以下是我所做的:

w = zeros(1,28);

e = zeros(1,63) + 1;

r = zeros(1,90) + 2;

t = zeros(1,100) + 3;

y = zeros(1,90) + 4;

u = zeros(1,63) + 5;

i = zeros(1,28) + 6;

qa = horzcat(w,e,r,t,y,u,i);

hist(qa,25,0.5)

h = findobj(gca,'Type','patch');

set(h,'FaceColor',[.955 0 0],'EdgeColor','w');

我想达到这个效果,但用一种更简洁的方式。这是我的尝试:
v= zeros(1,28);

for i=2:8
    v(i) = horzcat(v(i-1) + (i-1));
end

我收到的错误是“将单元格内容分配给非单元格数组对象”
另外,如果不是太多的问题,有人知道python的等价物是什么吗?

最佳答案

您也可以在不使用for循环的情况下实现这一点,尽管这有点不太起眼。但是嘿,它没有圈!此外,它还允许您自由选择不同的值集。

v=[0;1;2;3;4;5;6]; %values
r=[28 63 90 100 90 63 28]; %number of repeats

qa=zeros(sum(r),1);

qa(cumsum([1 r(1:end-1)]))=1;
qa=v(cumsum(qa));

08-19 12:37