0

我有一个我会使用的 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);

请建议一些功能和示例代码来执行此操作

4

2 回答 2

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
于 2013-05-31T04:18:59.567 回答
1

importdata用来处理 csv-s

aa.csv:

A,             B,        C
ALGOL,   3.13614789,  40.95564610
ALIOTH,  12.90050072, 55.95981118
ALKAID,  13.79233003, 49.31324779

导入数据('aa.csv')。数据:

3.1361   40.9556
12.9005   55.9598
13.7923   49.3132

导入数据('aa.csv').textdata:

'A'         '             B'    '        C'
'ALGOL'     ''                  ''         
'ALIOTH'    ''                  ''         
'ALKAID'    ''                  ''         
于 2013-05-30T23:21:10.593 回答