Вы перепутали две вещи: либо вы хотите прочитать из загруженного csv-файла, используя «textscan» (и «fopen», «fclose», конечно), либо вы хотите использовать «urlread» (или, скорее, «Webbread», поскольку MATLAB рекомендует больше не использовать «urlread»). Я go с последним, так как я никогда не делал это сам ^^
Итак, сначала мы читаем данные и разбиваем их на строки
url = "https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_19-covid-Confirmed.csv";
% read raw data as single character array
web = webread(url);
% split the array into a cell array representing each row of the table
row = strsplit(web,'\n');
Затем мы выделяем таблицу (предварительное распределение подходит для MATLAB, поскольку в нем хранятся переменные по последовательным адресам в ОЗУ, поэтому заранее сообщите MATLAB, сколько места вам нужно):
len = length(row);
% get the CSV-header as information about the number of columns
Head = strsplit(row{1},',');
% allocate table
S = strings(len,2);
N = NaN(len,length(Head)-2);
T = [table(strings(len,1),strings(len,1),'VariableNames',Head(1:2)),...
repmat(table(NaN(len,1)),1,length(Head)-2)];
% rename columns of table
T.Properties.VariableNames = Head;
Обратите внимание, что я выполнил небольшую хитрость, чтобы выделить так много восстановить столбцы ´NaN´s, повторяя одну таблицу. Однако объединить эту таблицу с таблицей строк сложно, так как оба содержат имена столбцов var1 и var2 . Вот почему я сразу же переименовал столбец первой таблицы.
Теперь мы можем заполнить таблицу (что немного неприятно из-за того, что человеку было приятно написать «Корея, Юг» в запятая -отделенный файл)
for i = 2:len
% split this row into columns
col = strsplit(row{i},',');
% quick conversion
num = str2double(col);
% keep strings where the result is NaN
lg = isnan(num);
str = cellfun(@string,col(lg));
T{i,1} = str(1);
T{i,2} = strjoin(str(2:end));% this is a nasty workaround necessary due to "Korea, South"
T{i,3:end} = num(~lg);
end
Это также должно работать в предстоящие дни. Дайте мне знать, что вы на самом деле собираетесь делать с данными