如何将制表符分隔文件转为CSV或分号分隔文件?(Excel/MATLAB场景)
问题描述
我有一组实验数据:
| t/s | s_1/m | x(t) |
|---|---|---|
| 0,0 | -0,2500 | 0,0 |
| 0,1 | -0,2435 | 0,0 |
| 0,2 | -0,2213 | 0,0 |
| 0,3 | -0,1845 | 0,0 |
| 0,4 | -0,1343 | 0,0 |
| 0,5 | -0,0742 | 0,0 |
| 0,6 | -0,0085 | 0,0 |
| 0,7 | 0,0575 | 0,0 |
用Excel打开时所有数据都挤在单列里,试过文本导入向导但没效果,不知道怎么调整成三列。同时我也在用MATLAB,是编程新手,求可行的解决建议。
Excel 解决方法
方法1:用「分列」功能快速拆分
- 选中包含所有数据的整列
- 点击菜单栏的「数据」选项卡,选择「分列」
- 向导操作步骤:
- 第一步选「分隔符号」,点击下一步
- 第二步勾选「空格」,同时勾选「连续分隔符视为单个处理」(避免多个空格导致空列),点击下一步
- 第三步可设置每列数据格式,比如选「数值」(注意你的小数点是逗号,若Excel区域设置不匹配,选「文本」可避免格式错乱),最后点击完成
方法2:先统一空格再分列
如果文本导入向导没效果,可能是空格类型异常(比如全角空格),先做统一处理:
- 选中数据列,按
Ctrl+H打开替换窗口 - 「查找内容」和「替换为」都输入普通空格,点击「全部替换」
- 再按照方法1的步骤执行分列
方法3:记事本中转后粘贴
若上述方法都无效,把数据复制到记事本中,确认每行都是空格分隔列,全选复制后粘贴到Excel的A1单元格,Excel通常会自动识别并拆分列。
MATLAB 处理方法
如果数据保存在文本文件(比如data.txt),直接用代码读取拆分:
% 读取文件,空格为分隔符,逗号为小数点 data = readmatrix('data.txt', 'Delimiter', ' ', 'DecimalSeparator', ','); % 提取各列数据 t = data(:, 1); s1 = data(:, 2); xt = data(:, 3);
如果直接在MATLAB中输入数据,注意小数点格式(若MATLAB默认用点,把逗号改成点即可):
data = [0.0 -0.2500 0.0; 0.1 -0.2435 0.0; 0.2 -0.2213 0.0; 0.3 -0.1845 0.0; 0.4 -0.1343 0.0; 0.5 -0.0742 0.0; 0.6 -0.0085 0.0; 0.7 0.0575 0.0];
内容的提问来源于stack exchange,提问作者NirvanicUniverse
相关产品推荐
相关产品推荐

