急!matlab关于如何调用excel数据的问题,较为复杂,详细描述见补充。希望高手帮帮忙,万分感谢啊!

假设matlab中求得一值a,如何在excel第一列中找出最接近于a的值(如A3),然后输出第二列与之同行B3的值?最终目标是求出n个值a1,a2……然后调用第二列中n个... 假设matlab中求得一值a,如何在excel第一列中找出最接近于a的值(如A3),然后输出第二列与之同行B3的值?最终目标是求出n个值a1,a2……然后调用第二列中n个相应数据。困惑已久,跪求高手给予解答! 展开
 我来答
cxd1301
2011-10-17 · TA获得超过3021个赞
知道小有建树答主
回答量:593
采纳率:50%
帮助的人:319万
展开全部
clear;
clc;
A = 100*rand(100,3); %%% 100行3列的0到100均匀分布随机数据
success = xlswrite('cxd.xls',A,'A1:C100'); %%%% 写入excel中
%%%%%% 以上两步,是由于我手头没有你的excel数据,自己创表格用的 %%%%%%

%%%%%% 以下才是你要的程序 %%%%%%%%
A = xlsread('cxd.xls','A1:B100'); %%%%% 根据你的需要修改读取范围'A1:B100'
A1 = A(:,1);
A2 = A(:,2);
%%%%%% 找最接近的值 %%%%%%
my_a = 10; %%%% 你设定的值,只有一个的情况
erro = abs(A1-my_a); %%%% 计算第一列与此值的误差
tip = find(erro==min(erro)); %%%% 找出最小误差位置
a1 = A1(tip) %%%% 显示最接近的A1
a2 = A2(tip) %%%% 显示对应位的A2
%%%%%%%%%%%%%%%% 完成 %%%%%%%%%%%%%%%%

%%%%%%%%% 如果你的给值是一个序列的话,可以参考以下程序%%%%%%
my_a = [3 30 80 50]; %%%% 序列,根据你的需要给出
for ii = 1:length(my_a)
erro = abs(A1-my_a(ii)); %%%% 计算第一列与此值的误差
tip = find(erro==min(erro)); %%%% 找出最小误差位置
a1(ii) = A1(tip); %%%% 显示最接近的A1
a2(ii) = A2(tip); %%%% 显示对应位的A2
end
a1
a2

有问题欢迎追问,有帮助,别忘了采~~~~~~
copyright(c) cxd1301
追问
成功了,谢谢,分给你了,可否再请教一下,这个得到的是近似值,能否得到准确值?比如my-a是介于A3和A4之间的一个数,能否得到B3和B4之间的差值?谢谢~
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式