将二进制值写入数组

时间:2011-09-05 10:33:47

标签: matlab

for n = 1:99
    k(n) = n;
    x_d(n) = n/100;    
    x_fp_temp=fi(x_d(n),1);

    x_fp_bin(n)=bin(x_fp_temp)
end

您好我正在尝试将二进制值写入数组x_fp_bin(n),但收到错误Subscripted assignment dimension mismatch。有人可以帮助我吗

2 个答案:

答案 0 :(得分:2)

这是一行:

x_fp_bin(n) = bin(x_fp_temp);

失败了。基本上是因为你正在返回一个字符数组(1和0)并且你不能将它直接放入一维数组中。要么使用更大的数组:

x_fp_bin(n,:) = bin(x_fp_temp);

或使用cellstrs:

x_fp_bin(n) = {bin(x_fp_temp)};

另外,您是否有使用循环而不是使用数组表示法的原因?

bin_arr = bin(fi((1:99)'./100, 1));

答案 1 :(得分:0)

只是猜测,因为你没有写出哪一行给你这个错误。

这一行:

x_fp_temp=fi(x_d(n),1);

定义了一个n x 1

数组

这样:

x_fp_bin(n)

是标量值(即1 x 1

在我看来,你正试图将一个向量分配给一个数组。