我有一个包含九个元素的索引向量IDX = [1 2 1 3 4 3 1 2 1]
。(在另一篇文章中,我询问了如何重复两个单独的向量 IDX1 和 IDX2,但这里我将所有元素都放在一个向量中)
该矩阵的前五个元素将根据 中的元素重复howMany1 = [3 2 2 1 2]
,接下来的四个元素将根据 重复howMany2 = [2 1 2 2]
。所以结果是:a1 =[1 1 1 2 2 1 1 3 4 4]
和a2 = [3 3 1 2 2 1 1 ]
。我怎样才能通过 MATLAB 将结果存储在一个单元格中的两个单独的矩阵中?这是我的代码,但我无法找出问题所在。感谢大家抽出宝贵的时间。
clear all
close all
clc
IDX = [1 2 1 3 4 3 1 2 1];
howMany1 = [3 2 2 1 2]; % howMany1 and howMany2 determine how many times each index in IDX should be repeated.
howMany2 = [2 1 2 2];
%%
howMany = {howMany1 howMany2};
a = cell(2,1)
m = 1
for k = 1:2
for j=m:length(howMany)+m-1
h = howMany{k};
idx=IDX(j);
a{k,1}= cell2mat(arrayfun(@(x,y) repmat(x,1,y),idx,h(j),'uniform',0))
end
m = m+length(h)
end