【发布时间】:2015-01-06 01:18:35
【问题描述】:
我是 matlab 新手,需要一些帮助。我想重复使用 txt 文件中的三列并添加我创建的额外两列。
我的 .txt 文件是:
"Abel" 70 1.80 55 M
"Ana" 55 1.73 68 F
"Xavier" 65 1.82 61 M
"Rui" 80 1.79 23 M
这是我写的代码:
[nome,peso,altura,idade,genero]=textread('imc.txt','%q%n%f%n%c')
for k=1:length(peso)
imc(k)=peso(k)./(altura(k).^2)
end
for k=1:length(imc)
if imc(k)>24.9
imc_ok{k}='over'
elseif imc(k)<18.5
imc_ok{k}='under'
else
imc_ok{k}='ok'
end
end
imc=imc';
imc_ok=(imc_ok)';
fid=fopen('imc.txt','wt');
for i=1:length(imc)
fprintf(fid,'%q,%n,%f,%f,%s',nome(i,1),peso(i,1),altura(i,1),imc(i,1),imc_ok{i})
end
fclose(fid)
我想用nome、peso、altura、imc 和imc_ok 创建一个新的文本文件,我尝试搜索并将(i,1) 替换为{i},但它没有不行。
"Abel" 70 1.80 21.6 ok
"Ana" 55 1.73 18.3 under
"Xavier" 65 1.82 19.6 ok
"Rui" 80 1.79 23 24.9 over
【问题讨论】:
-
能否更新您的问题,并举例说明您希望新文本文件的外观。额外的行是什么?你打算如何添加它们?你如何调用你的函数?
-
另外,你不应该调用你的函数
textread,因为这是一个内置的Matlab函数。 -
我实际上是在使用 textread 读取 .txt 文件,我没有创建函数。我已经编辑了我的问题,谢谢
-
所以您实际上想要替换最后 2 个 列,而不是 行。也许你应该编辑你的标题以反映这一点,因为在你编辑之前它相当混乱。
-
哦,你是对的,对不起!
标签: matlab