如何避免Matlab在将双精度数转换为向量的同时将双精度数转换为整数?

时间:2019-05-31 11:20:42

标签: matlab vector rounding

嗨,我正在尝试将双精度值放入向量中,但是当我显示此矢量时,我看到放入其中的双精度值已转换为整数。如何避免这种情况?

我检查了teta的值,它们符合预期(即1.802、1.688),但是在矩阵x中,这些值全为1。

SerialPort = 'COM23';
s = serial(SerialPort, 'BaudRate', 115200);
fopen(s);

n = 1;


while n<200
    dis = fscanf(s,'d',2);
    ang = fscanf(s,'d',3);
    intDis = str2double(dis);
    intAng = str2double(ang);
    teta = pi/6 +(intAng-100)*pi/300;
    x(n) = teta
    y(n) = intDis;

    n = n+1;
end


%polar(x,y)
fclose(s);
delete(s);
clear s;

1 个答案:

答案 0 :(得分:0)

发生这种情况的唯一方法是,如果@GET("https://demo6861386.mockable.io/banner/test") fun getPromotionalBanner(): Call<MerchantpromotionBDTO> 在脚本启动之前被声明为整数(或者可能是逻辑?)。您应该始终始终初始化所有变量,以避免出现意外错误:在循环之前将x添加到脚本中。

但是您的循环恰好运行200次迭代,因此您知道x=[];的大小将在末尾。您可以预分配:

x

我还建议您研究x = zeros(200,1); 循环的语法,因为在这种情况下,它比for更简单。