Using Excel files in function
2 次查看(过去 30 天)
显示 更早的评论
I have a spreadsheet of list of cities and distances between them such as
New York Washington DC Los Angeles
New York 0 500 . 1000
Washington DC 500 0 . 1500
Los Angeles 1000 1500 0
how do i create a function which takes 2 cities as input and gives the distance as output, given that invalid city names give 0 as distance?
I tried a few things but honestly I don't know how to proceed with this problem.
2 个评论
Bob Thompson
2019-2-7
Could you expand a little on what things you tried, and why they didn't work? That will help us give you a more clear answer, rather than something super general.
采纳的回答
Bob Thompson
2019-2-7
编辑:Bob Thompson
2019-2-7
This is a quick first cut, so you will likely need to do some fine tuning of your own. I am assuming that your city distance data is one large square array, with city names in first row and first column.
function [distance] = city_distance(city1,city2);
% Read in the city data, keeping all data in cells
[~,~,data] = xlsread('mycityfile.xlsx');
% Check for first city
c1 = cellfun(@(x) strcmp(x,city1),data(:,1)); % Edit
if c1 == 0; % Edit
error('No match was found for the first city.')
end
% Check for the second city
c2 = cellfun(@(x) strcmp(x,city2),data(1,:)); % Edit
if c2 == 0; % Edit
error('No match was found for the second city.')
end
% Distance determination
distance = data{c1,c2};
end
11 个评论
Priyamvada Shankar
2019-3-23
Have you got that where you went wrong,if yes then help me also... I'm too stuck in this question.
Mahesh Sharma
2019-7-27
hey
try this one , this works.
function distance = get_distance(A,B)
[~,~,raw] = xlsread('Distances.xlsx');
distance = -1;
for i = 2 : size(raw,1)
if strcmp(A,raw{1,i})
for j = 2 : size(raw,2)
if strcmp(B,raw{j,1})
distance = raw{j,i};
return
end
end
else
distance = -1;
end
end
end
更多回答(1 个)
Ana Guerreiro
2019-4-27
Hi Bob Nbob
Your code does not work for "non-existent city" that needs to be equal to -1 (Distance= -1).
Can you help me, showing how to do it, please?
Best regards
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Spreadsheets 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!