我有一个我会使用的excel文件数据。 我希望来自B列和C列的两个输入值从A列获取名称。 示例:来自这两个值
var1 = 12.90050072
var2 = 55.95981118
I would get "ALIOTH"
此处数据
A B C
ALGOL 3.13614789 40.95564610
ALIOTH 12.90050072 55.95981118
ALKAID 13.79233003 49.31324779
我可以加载csv文件,但无法浏览数据。
function [name] = getNameObject(ad,dec)
fileID = fopen('bdd.csv');
C = textscan(fileID, '%s %f %f','Delimiter',';');
fclose(fileID);
请建议一些功能和示例代码来执行此操作
答案 0 :(得分:2)
由于您需要比较浮点值,因此直接数字比较在很多时候都不起作用。在这里,我将利用字符串比较来实现您的需求:
clear;
fid = fopen('test.csv');
C = textscan(fid, '%s %s %s', 'Delimiter', ';');
fclose(fid);
val1 = input('Enter the first input: ', 's');
val2 = input('Enter the second input: ', 's');
if(find(ismember(C{2},val1)) == find(ismember(C{3},val2)))
output = C{1}{find(ismember(C{2},val1))}
else
disp('No match found!');
end
现在结果如下:
>> test
Enter the first input: 1.03
Enter the second input: 4.12
No match found!
>> test
Enter the first input: 12.90050072
Enter the second input: 55.95981118
output =
ALIOTH
在这里,我假设,根据我可以从你的代码中推断出,分隔符是一个分号。因此,我的输入数据是:
A;B;C
ALGOL;3.13614789;40.95564610
ALIOTH;12.90050072;55.95981118
ALKAID;13.79233003;49.31324779
答案 1 :(得分:1)
我使用importdata
来处理csv-s
aa.csv:
A, B, C
ALGOL, 3.13614789, 40.95564610
ALIOTH, 12.90050072, 55.95981118
ALKAID, 13.79233003, 49.31324779
IMPORTDATA( 'aa.csv')数据:
3.1361 40.9556
12.9005 55.9598
13.7923 49.3132
IMPORTDATA( 'aa.csv')的TextData:
'A' ' B' ' C'
'ALGOL' '' ''
'ALIOTH' '' ''
'ALKAID' '' ''