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

在Octave中如何从STDIN(标准输入)读取矩阵?

Octave 从STDIN读取指定尺寸方阵的实现方法

首先明确输入格式要求:

输入第一行为方阵的尺寸n,后续n行每行包含n个用空格分隔的数字,组成n阶方阵,示例输入如下:

3
1 2 3
4 5 6
7 8 9

实现方案

方案1:逐行读取(支持自定义校验)

适合需要对输入合法性做校验的场景,代码如下:

% 读取第一行获取方阵阶数
n = str2double(fgetl(stdin));
mat = [];
for i = 1:n
    % 读取单行内容转换为数字数组
    cur_row = str2num(fgetl(stdin));
    % 可选:校验行长度是否符合要求
    if length(cur_row) ~= n
        error("第%d行输入元素数量与方阵尺寸不匹配", i);
    end
    mat = [mat; cur_row];
end

运行后得到的mat变量就是读取到的n阶方阵。

方案2:极简写法(无需循环)

如果不需要自定义校验逻辑,可以直接用Octave内置的dlmread函数一行完成读取:

% 参数说明:第二个参数为分隔符,第三个参数是跳过的行数(跳过第一行的尺寸值),第四个参数是跳过的列数
mat = dlmread(stdin, ' ', 1, 0);

内容的提问来源于stack exchange,提问作者JISHNU N

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 01:39:02