如何在MATLAB中存储1和0的数组
我的平均值大于0,然后加100个1,否则加100个0,但我不能让它工作如何在MATLAB中存储1和0的数组,matlab,if-statement,Matlab,If Statement,我的平均值大于0,然后加100个1,否则加100个0,但我不能让它工作 zero = zeros(1,100); one = ones(1, 100); demodulation = [zero zero zero zero zero zero zero zero]; for i=1:1:8; if (average > 0) demodulation(i) = ones(1,100); else demodulation(i) = zeros
zero = zeros(1,100);
one = ones(1, 100);
demodulation = [zero zero zero zero zero zero zero zero];
for i=1:1:8;
if (average > 0)
demodulation(i) = ones(1,100);
else
demodulation(i) = zeros(1,1);
end
但是我在MATLAB中得到了这个错误:
根据这个错误,我猜
I
是一个索引。不能在另一个向量的单个元素中存储1x100向量-需要指定目标向量的100个元素来存储它
假设i
介于1和8之间,您要做的是:
demodulation((1:100) + (i-1)*100) = ones(1,100);
类似地,对于零的情况,您当前只是根据该错误分配一个
0
,我猜I
是一个索引。不能在另一个向量的单个元素中存储1x100向量-需要指定目标向量的100个元素来存储它
假设i
介于1和8之间,您要做的是:
demodulation((1:100) + (i-1)*100) = ones(1,100);
类似地,对于零的情况,当前只分配一个
0
假设i=0:100:800,则需要
demodulation(i+1:i+100) = 1;
如果i=1:8
,则需要:
demodulation(1+(i-1)*100:i*100) = 1;
相反,对于另一种情况
注意,由于average
似乎并不依赖于i
,因此您可以简单地编写
zero = zeros(1,100);
one = ones(1, 100);
demodulation = [zero zero zero zero zero zero zero zero] + average>0;
或者你可以
if average>0
demodulation = ones(1,800)
else
demodulation = zeros(1,800)
最大限度地减少了内存分配和设置。假设i=0:100:800,您需要类似
demodulation(i+1:i+100) = 1;
如果i=1:8
,则需要:
demodulation(1+(i-1)*100:i*100) = 1;
相反,对于另一种情况
注意,由于average
似乎并不依赖于i
,因此您可以简单地编写
zero = zeros(1,100);
one = ones(1, 100);
demodulation = [zero zero zero zero zero zero zero zero] + average>0;
或者你可以
if average>0
demodulation = ones(1,800)
else
demodulation = zeros(1,800)
最大限度地减少了内存分配和设置。i的值是多少?它不依赖于i,并且可以工作,因此两个答案都是正确的
i
的值是多少?它不依赖于i,并且可以工作,所以这两个答案都是正确的,解调也可以是二维阵列。