clear clc a=xlsread('A.xlsx','sheet1','A1:A34198'); b=xlsread('A.xlsx','sheet1','B1:B34198'); if a==2 if b==2 c=0; elseif b==1 c=2; end elseif a==1 c=1; end xlswrite('B.xlsx',c,'sheet1','C1:C34198');这个代码有什么问题?
时间: 2023-12-01 12:04:22 浏览: 82
新手求助RBF神经网络数据预测问题-历史开奖数据.xlsx
这个代码有几个问题:
1. 当读取 A.xlsx 的数据时,你没有指定 sheet 名称,应该将 'sheet1' 修改为实际的 sheet 名称。
2. 当读取 A.xlsx 的数据时,你只读取了 A 列和 B 列的第一个值,而没有读取整个列的数据。应该使用类似 `xlsread('A.xlsx','sheet1','A1:A34198')` 的方式,将整个 A 列和 B 列的数据都读取出来。
3. 在 if 语句中,当需要判断数组是否等于某个值时,应该使用类似 `if all(a==2)` 的方式,而不是 `if a==2`,因为 a 是一个数组。
4. 在 if 语句中,当需要判断多个条件时,应该使用逻辑运算符,如 `if all(a==2 & b==2)`。
5. 在 if 语句中,当 b 不等于 2 时,你没有给 c 赋值,应该给它一个默认值,如 `c=NaN`。
6. 在 xlswrite 函数中,第三个参数应该是一个字符串,如 'C1:C34198',而不是一个变量。
下面是修改后的代码:
```
clear
clc
a=xlsread('A.xlsx','sheet1','A1:A34198');
b=xlsread('A.xlsx','sheet1','B1:B34198');
c = NaN(size(a));
for i = 1:length(a)
if all(a(i)==2 & b(i)==2)
c(i) = 0;
elseif all(a(i)==2 & b(i)==1)
c(i) = 2;
elseif all(a(i)==1)
c(i) = 1;
end
end
xlswrite('B.xlsx',c,'sheet1','C1:C34198');
```
这个代码的作用是,根据 A.xlsx 中的数据,判断每一行的值,并将对应的值写入 B.xlsx 中的 C 列。
阅读全文