错误使用csvread dlm headerlines必须整数值

44视图(30天)
我使用csvread时得到以下错误:
错误使用dlmread(第147行)HeaderLines必须整数值。错误csvread(48)行m = dlmread(文件名,”、“r c);myDataProcessV2_2误差(13号线)(Vg) = csvread (Data_File (j) . name ' B251: B360 ');
我不知道如何解决它。我感谢任何帮助。
j = 1:计算(1)
(Vg) = csvread (Data_File (j) . name,“B251: B360”);
(Id) = csvread (Data_File (j) . name,“E251: E360”);
IdSize =大小(IdAll);
IdSize (1) = IdSize (1) / 2;
Id = IdAll (1: IdSize (1));
Vg = VgAll (1: IdSize (1));
如果j = = 1
lgIdCollection = 0 (IdSize(1),计算(1));
结束
lgId = 0 (IdSize);
sqrtId = 0 (IdSize);
i = 1: IdSize (1)
lgId (i) = log10 (Id (i));
sqrtId (i) = sqrt (Id (i));
结束
lgIdCollection (1: IdSize, j) = lgId;
onOffRatioCollection (j) = seekOnOffRatio (Id);
SSCollection (j) =寻求(lgId Vg);
[VonLocation VonCollection (j)] = seekVon (Id、Vg lgId);
[kmax, Vth] = seekVth (Id、Vg VonLocation sqrtId);
hysCollection (j) = seekHys (IdAll, VgAll VonLocation 176);
mobilityCollection (j) = seekMobility (kmax);
结束

答案(2)

Nikilesh Chilkuru
Nikilesh Chilkuru 2019年1月18日
我认为这个错误是由于您正在阅读的列从csv文件可能非数字。关键要注意“dlmread”和“csvread”只能读数值数据。文档中提到的链接: csvread
读取数据的最佳方法有非数字字段是使用 textscan 。您可以指定您想要读的数据的格式 textscan 。得到更多的信息,请参考: https://stackoverflow.com/questions/13115569/error-when-reading-data-from-csv-file-into-matlab
1评论
沃尔特·罗伯森
沃尔特·罗伯森 2019年1月19日
不,它是一个普通的位置参数的问题。数字R和C补偿以前出现的角色范围表达式。

登录置评。


沃尔特·罗伯森
沃尔特·罗伯森 2019年1月19日
csvread()不接受Excel-style字符范围在第二或第三个参数,只在第四个参数。
(Vg) = csvread (Data_File (j) . name, 250年1“B251: B360”);
1列抵消匹配“B”和250年行抵消比赛“251”。第二个和第三个参数的数值 相对 抵消,所以可以使用0(第一列),0为第一行,而Excel范围是绝对的,而不是相对的。如果你给错误的数值范围相比字符串就会给予警告。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!