我有一份来自EPA的数据集,我已将其浓缩为六列
第一列代表不同的public water suppliers
(PWS)。第二个是sampleid number
。第三个是associated sample id number
。标签开头带有MR的样品表示出口点。所有其他sample IDs
是具有关联MR的入口点。第四列是sample date
。第五个是个人reference number
。第六列是sample concentration
。
基本上我要完成的目标是匹配相同的PWS
,相同的date
,以及相同的sample ID
和associate sample id
,最后减去两者之间的差异{ {1}}与这些行相关联。
我的数据集是6列乘39000行。
这是我尝试过的代码:
sample concentrations
但这是我收到的错误:
EDU>>运行epadata错误使用== Matrix维度必须同意。
元数据中的错误(第10行)
filename = fopen('Datamine2.csv'); SampleList = textscan(filename,'%s %s %s %s %s %s','Delimiter',',','EmptyValue',0); fclose(filename); results = []; for i = 1:5 if SampleList{3}{i} ~= 0 SampleID1 = SampleList{5}{i}; for j = 1:5 if SampleList{2}{j} == SampleList{3}{i} && SampleList{1}{j} == SampleList{1}{i} && SampleList{4}{j} == SampleList{4}{i} SampleID2 = SampleList{5}{j}; SampleDiff = str2double(SampleList{6}{i}) - str2double(SampleList{6}{j}); newresults = [SampleList{1}{i} SampleList{4}{i} SampleDiff SampleID1 SampleID2]; results = [results;newresults] end end end end
跑步时出错(第64行)
if SampleList{2}{j} == SampleList{3}{i} && SampleList{1}{j} == SampleList{1}{i} && SampleList{4}{j} == SampleList{4}{i}
任何人都可以提供解决此问题的任何指导吗? 非常感谢。
答案 0 :(得分:0)
您的数据采用string
格式。 (班级char
)
使用strcmp()
函数比较字符串而不是==
,因为==
比较两个矩阵元素,而Matrix维度必须同意进行比较。
示例:强>
>> strcmp('abc','ab')
ans =
0
>> 'abc' == 'ab'
使用
==
时出错 矩阵维度必须一致。