簡體   English   中英

Matlab 錯誤:下標賦值維度不匹配

[英]Matlab Error: Subscripted assignment dimension mismatch

我正在嘗試將十進制數轉換為二進制數。 它適用於常規十進制數。 但是,當我輸入 (25.10) 時,出現下標錯誤。

我的代碼如下。

function [binary] = decimal2binary(decimal)
% floor : rounds towards minus infinity
% rem : remainder after division
% num2str : converts numbers to strings
% fliplr : flips string bits to get correct order
i = 1.0;
q = floor(decimal/2);
r = rem(decimal, 2);
% THIS IS WHERE THE ERROR OCCURS binary(i) = num2str(r(i));
while 2 <= q
    decimal = q;
    i = i+1;
    q = floor(decimal/2);
    r = rem(decimal, 2);
    binary(i) = num2str(r);
end
binary(i + 1) = num2str(q);
binary = fliplr(binary);
end

假設有錯誤的行確實是:

binary(i) = num2str(r(i));

然后,當調用帶有參數 25.10 的函數時,在到達這一行之前,我們有:

i=1
r=1.10000
num2str(r(i)) = '1.1'

這就是為什么歸因

 binary(i) = num2str(r(i));

不起作用。 在 Matlab 中, binary(1) 是一個 1x1 字符數組。 您正在嘗試將 1x3 字符數組 ('1.1') 放入其中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM