我有一个.txt(220行* 12列,第一行文本,其余文件是十进制数)文件,首先我把它转换成一个表:
T = readtable('xxx.txt','Delimiter','\t')
然后将T保存为.mat格式。
然后我运行了这些代码:
>> load T.mat
>> col=0;
raa=0.05;
d=0;
c=0;
n=0;
w=0;
b=0;
data4=zeros(220,10);
for col=3:12
for i=1:220
b=0;
c=0;
for j=1:220
if i~=j
d=sqrt((T(i,1)-T(j,1))^2+(T(i,2)-T(j,2))^2);
if d<30
c=(1/(d^2))*T(j,col);
b=b+c;
else
end
end
end
x=T(i,col) - (raa * b);
n=i;
data4(i,col)= x;
data4(i,1)=n;
end
% dlmwrite('trash.txt',data4,'\t')
dlmwrite('T-100spreg2-raa05.txt',data4,'\t')
end
我收到错误消息:
错误:类型为table的输入参数的未定义函数'减'。
我的问题是:
为什么当我检查T的大小时我得到ans = 1 1,为什么不ans = 220 12?
为什么我收到此错误消息?
如果我不应该在代码中直接使用表T,那么我需要将其转换为数组。我用A = table2array('T')得到了: 错误:来自非单元格数组对象的单元格内容引用 table2array中的错误(第27行)a = t {:,:}; 难道我从第一步做错了,即将.txt转换为表格(因此我得到ans = 1 1而不是220 12)?
答案 0 :(得分:0)
这只是部分答案,但它应该解释为什么在尝试使用table2array
时出现错误。
相关函数的输入不应该是表的名称,而应该是表本身。 因此,您应该替换:
A=table2array('T')
通过
A=table2array(T)
也许这足以帮助你解决其他问题。