Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
高级会员
注册日期: 2019-11-21
帖子: 3,006
声望力: 66 ![]() |
![]()
我有一个巨大的CSV文件,其中包含数字和文本数据类型。我想将其读入Matlab中的单个矩阵中。我将在这里使用一个更简单的示例来说明我的问题。假设我有这个CSV档案:
1,foo 2,bar 我正在尝试使用以下方法将其读入MatLab: A=fopen('filename.csv'); B=textscan(A,'%d %d', 'delimiter',','); C=cell2mat(B); 前两行工作正常,但问题是texscan不会创建2x2矩阵;而是创建一个1x2矩阵,每个值都是一个数组。因此,我尝试使用最后一行将数组组合成一个大矩阵,但由于数组具有不同的数据类型,因此会产生错误。 有办法解决这个问题吗?还是结合数组的更好方法? 回答: 我注意到将它们结合起来是否是一个好主意。分开使用它们可能会更好。 我更改了您的代码,以使其更好地工作: clear clc A=fopen('filename.csv'); B=textscan(A,'%d %s', 'delimiter',',') fclose(A) 看结果 K >> B {1} 回答= 1 2 K >> B {2} 回答= 'foo' 'bar' 确实,我认为这是最有用的格式。如果有的话,大多数人都希望将这个单元阵列分成较小的块 num = B{1} txt = B{2} 您为什么要合并它们?它们已经在一个单元阵列中在一起,这是您将获得的最大组合。 更多&回答... |
![]() |
![]() |