You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Scilab二项式拟合程序:如何获取全部用户输入数据并生成表格?

Scilab捕获全部用户输入并生成表格的解决方案

问题根源

你的代码大概率是在接收用户输入时,每次都用单个变量存储新值,覆盖了之前的输入,导致最终仅保留最后一条数据。要解决这个问题,核心是用数组累积所有输入,再将数组转为表格展示。

具体实现代码

1. 累积所有用户输入数据

先初始化空数组,在循环中把每次输入追加到数组里(这里以输入数值为例,输入-999结束):

// 初始化空数组存储所有输入
all_inputs = [];

disp("请输入数据,输入-999结束输入:")
while %t
    current_val = input("请输入数值:");
    if current_val == -999 then
        break; // 触发结束条件
    end
    // 将新输入追加到数组末尾
    all_inputs = [all_inputs, current_val];
end

如果是成对输入(比如x和y值),可以用二维数组存储:

all_inputs = [];
disp("请输入成对数据(x,y),输入0 0结束:")
while %t
    [x, y] = input("请输入x和y值:", "(2)");
    if x == 0 & y == 0 then
        break;
    end
    all_inputs = [all_inputs; [x, y]];
end

2. 生成表格展示全部数据

方法一:用Scilab内置table函数

直接将数组转为表格,自带表头:

// 转为列向量适配table格式
input_col = all_inputs';
// 创建表格并设置列名
data_table = table(input_col, "VariableNames", ["输入数据"]);
disp("所有输入数据:")
disp(data_table);

如果是二维数组(成对数据):

data_table = table(all_inputs, "VariableNames", ["X值", "Y值"]);
disp("所有输入数据:")
disp(data_table);

方法二:自定义文本表格

如果需要更灵活的样式,用格式化输出手动构建表格:

disp("------------------------")
disp("| 序号 | 输入数据 |")
disp("------------------------")
for i = 1:length(all_inputs)
    printf("| %3d | %8.2f |\n", i, all_inputs(i))
end
disp("------------------------")

关键提示

  • 绝对不要用单个变量循环接收输入,必须用数组累积
  • 结束输入的条件可以根据需求调整(比如输入特定字符串、达到指定输入次数)
  • 后续的均值、方差计算和二项式拟合,直接基于累积的数组all_inputs即可,不会影响原有逻辑

内容的提问来源于stack exchange,提问作者Arjun Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 08:57:20