Получать данные из текстовых файлов в MATLAB

Ни один из предполагаемых высоко разрешенных решений не работал для меня правильно. Каждый из них приводит к ошибке, когда после открытия и закрытия (щелкнув по другим элементам) popover в первый раз, он не открывается снова, пока вы не сделаете два клика на триггерной ссылке вместо одного.

Поэтому я немного изменил его:

$(document).on('click', function (e) {
    var
        $popover,
        $target = $(e.target);

    //do nothing if there was a click on popover content
    if ($target.hasClass('popover') || $target.closest('.popover').length) {
        return;
    }

    $('[data-toggle="popover"]').each(function () {
        $popover = $(this);

        if (!$popover.is(e.target) &&
            $popover.has(e.target).length === 0 &&
            $('.popover').has(e.target).length === 0)
        {
            $popover.popover('hide');
        } else {
            //fixes issue described above
            $popover.popover('toggle');
        }
    });
})
1
задан Brian Tompsett - 汤莱恩 23 November 2015 в 16:23
поделиться

2 ответа

Какая причина для Matlab? Если вы работаете в академических кругах, у вас может быть доступ к LabVIEW, который может быть легче изучить для чего-то подобного. Вы захотите использовать ВП Read from Text File, а затем проанализировать строку. Конечно, вам придется использовать "|" символов для разделения данных (используйте Match Pattern VI). Со временем вы, возможно, захотите реструктурировать и способ хранения данных в текстовом файле — используйте текстовые клавиши, а не |. Что-то вроде:

кодсерв N области | codice 1 nome N01 tnom 20 и т.д...

Извините, что не предоставил ответ с каким-то исходным кодом Matlab, но я бы рассмотрел LabVIEW, если это вариант.

0
ответ дан 2 September 2019 в 21:46
поделиться

взгляните на textscan

у вас есть контроль над форматом текстового файла?

EDIT

вот довольно хакерский способ добиться результата

function readtest()

fid = fopen('test.txt'); 

%skip 3 lines, save 4th, skip 5th
for i = 1:4
    names = fgetl(fid);
end
fgetl(fid);

% separate out names
names = textscan(names,'%s','delimiter','|');

% read the data
data = textscan(fid,'%s %s %d %s %s %d %d %f %f %f %[| ]','delimiter','|');

fclose(fid);




for i = 1:size(data,2)-1
    values = ( data{i}(1:end));
    if(iscell(values))
        values = cell2mat(values);
    end

    name = names{1}{i+1};

    % very basic error checking
    if(~strcmp(name, ''))

        %save the value in the calling work space
        assignin('caller', name, values)
    end
end
2
ответ дан 2 September 2019 в 21:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: