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

如何在MATLAB中一次性读取剪贴板中的多行输入?

在MATLAB中一次性读取多行输入的方法

input(char.empty,'s')只能读取到第一个换行符,这是因为它默认把换行当作输入结束的标志。要一次性读取粘贴的多行内容,可以通过直接读取标准输入流的方式实现,以下是两种可行方案:

方案一:用fgetl循环读取

通过循环调用fgetl(stdin)读取每一行,直到遇到EOF(文件结束符)停止。操作时粘贴多行内容后,按**Ctrl+D(Linux/macOS)或Ctrl+Z(Windows)**结束输入:

lines = {};
disp('粘贴内容后按Ctrl+D/Ctrl+Z结束输入:');
while true
    current_line = fgetl(stdin);
    if current_line == -1  % 检测到EOF
        break;
    end
    lines{end+1} = current_line;
end
% 可选:将所有行合并为单个字符串
full_content = strjoin(lines, '\n');

方案二:用textscan批量读取

借助textscan直接读取所有行,同样需要以Ctrl+D/Ctrl+Z结束输入:

disp('粘贴内容后按Ctrl+D/Ctrl+Z结束输入:');
fid = stdin;
% 按行读取,将每行作为字符串存入单元格数组
content_cell = textscan(fid, '%s', 'Delimiter', '\n', 'EndOfLine', '\n');
fclose(fid);
full_content = strjoin(content_cell{1}, '\n');

处理数值内容

如果粘贴的是多行数值,可将读取到的内容转换为数值数组:

% 基于方案一的lines变量
numeric_cells = cellfun(@str2num, lines, 'UniformOutput', false);
% 若每行数值数量一致,可合并为矩阵
numeric_matrix = cell2mat(numeric_cells);

这些方法不需要依赖剪贴板,直接在MATLAB命令行中粘贴多行内容即可一次性读取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 09:12:06