Как исправить «индексирование точек не поддерживается для переменных этого типа» в результатах importdata () - PullRequest
1 голос
/ 14 апреля 2019

Я пытаюсь импортировать данные из CSV-файла.Когда данные импортируются, создается структура с двумя полями, но ни одно из них не доступно, поскольку выдается ошибка индексации точек.

Это первые несколько строк одного из файлов

"U0[m/s] U0_Sd U[m/s ]  U_Sd L[N ]  D[N] Horiz. Verti. 4/3/2019 3:21 PM"
"12.933 0.056   13.919  0.914 -177.404  -262.059    0.000   0.000"
"12.977 0.050   14.038  0.972   -177.387    -262.139    0.100   0.000" 
"12.947 0.053 14.073    1.040   -177.299    -262.086    0.200   0.000"
"12.965 0.051   14.007  1.037   -177.271    -262.140    0.300   0.000" 

Код выглядит следующим образом:

path='directory_path';

files=dir(strcat(path,'*.csv'));

for file=files'

    cur_file=(strcat(path,file.name));
    file_struct=importdata(cur_file);
    file_data=file_struct.data;
end

Я получаю сообщение об ошибке: «Индексирование точек не поддерживается для переменных этого типа», но структуры должны иметь возможность индексировать точки.Кроме того, когда я перехожу в рабочую область, переменная file_struct отображается как ячейка, а не как структура, но делает это только тогда, когда я включаю строку кода, инициализирующую file_data.Почему происходит преобразование структуры в ячейку и как я могу получить доступ к своим данным?Заранее спасибо.

1 Ответ

0 голосов
/ 19 апреля 2019

Если эти двойные кавычки действительно присутствуют во входном файле, это то, что срабатывает importdata.Эти кавычки заставляют думать, что каждая строка является отдельной строкой, а не разделенными пробелами значениями в двумерном массиве.В этом случае, когда в каждой строке есть только одна строка текста, importdata возвращается к возвращению массива ячеек вместо этой структуры с полями data, textdata и colheaders.

Так что избавьтесь от этих двойных кавычек!

Или используйте взамен textscan или readtable.readtable это, вероятно, то, что вы хотите от них двоих.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...