在Matlab中扩展数组长度时出现错误

时间:2015-05-10 14:47:31

标签: matlab

我已经写了一段代码但是当我试图更改贵重物品时,时间表(2,:)发生错误。我的代码:

clc;clear;
a = [1 2 3 4];
N = 3;
schedule(1,:) = kron(a,ones(1,N));% repeat 4 days
schedule(2,:) = repmat([1 2 3],1,4); % repeat time slots in each day %nums col rep
schedule(3,:) = randperm(12); % randomize 12 courses
schedule

是一种匹配日程安排(2,:)与其他人的长度的方法吗?例如,当other的长度为20时,schedule(2,:)不会超过20。这不是标准 感谢名单...

1 个答案:

答案 0 :(得分:0)

当您更改day和/或repeat错误发生在

schedule(2,:) = repmat([1 2 3],1,4);

因为array生成的repmat([1 2 3],1,4)的大小始终具有相同的长度,而使用kronrandperm生成的数组的长度根据定义而变化dayrepeat

可能的解决方案是修改指令

schedule(2,:) = repmat([1 2 3],1,4);

如下:

schedule(2,:) = repmat([1:repeat],1,length(day))

此解决方案允许schedule(2,:)具有相同的schedule(1,:)schedule(1,:)长度。

希望这有帮助。