Задать вопрос
  • Анализ данных с термодатчиков и трубки Флейша?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    С температурами всё достаточно просто, графики без шумов. Можно брать локальные минимумы/максимумы, просто перебираете весь массив считая разницу между значениями в текущей и в следующей точках меняет знак, то записываете точку как локальный экстремум.

    d = V[1]-V[0];
    for (i = 1; i < N-1, i++) {
        d1 = V[i+1]-V[i];
        if (d < 0 && d1 > 0) {
            // Локальный минимум V[i]
        } else if (d > 0 && d1 < 0) {
            // Локальный максимум V[i]
        }
        d = d1;
    }

    Для объёма график с шумами, если уровень шумов заранее известен, то его можно исключить игнорируя разницу, попадающую в уровень шума. Для нахождения середины перегиба в этом случае можно анализировать два перехода - от повышения к нулю и от нуля к снижению (наоборот для нижнего перегиба) и брать значение в середине перегиба или среднее значение между крайними точками перегиба.

    noise = 2; // Уровень шума, поставить нужное значение
    t1 = 0; // Точка перехода к нулю
    upDown = 0; // Направление движения до нуля, > 0 - вверх, < 0 - вниз, 0 - начало графика
    d = V[1]-V[0];
    if (abs(d) < noise)
        d = 0;
    for (i = 1; i < N-1, i++) {
        d1 = V[i+1]-V[i];
        if (abs(d1) < noise)
            d1 = 0;
        if (d < 0 && d1 > 0) {
            // Локальный минимум V[i]
        } else if (d > 0 && d1 > 0) {
            // Локальный максимум V[i]
        } else if (d != 0 && d1 == 0) {
            t1 = i;
            upDown = d;
        } else if (d == 0 && d1 > 0 && upDown < 0) {
            // Локальный минимум V[(t1+i)/2] или (V[t1]+V[i])/2
        } else if (d == 0 && d1 < 0 && upDown > 0) {
            // Локальный максимум V[(t1+i)/2] или (V[t1]+V[i])/2
        }
        d = d1;
    }
    Ответ написан
    2 комментария
  • JavaScript: первые шаги. Как обратиться к вложенному элементу?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    function visibleOnClick (node) {
        var visible = node.childNodes[1]; 
        visible.style.opacity = (visible.style.opacity == 0 ? 1 : 0);
    }


    <div class='box' onclick='visibleOnClick(this)'>
        <ul class='visible'>
    	<li>blabla</li>
    	<li>blabla</li>
        </ul>
    </div>


    this.childNodes[0] - текстовая нода, присутствует если между <div> и <ul> будет хоть один символ, в том числе и перевод строки.

    .style.opacity сделает элемент прозрачным, но место занимать он по прежнему будет. Для освобождения пространства надо переключать .style.display между 'none' и 'block'.
    Ответ написан
    2 комментария
  • Есть ли возможность вывода на печать специально сделанной для печати страницы сайта (длинная таблица)?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Комментировать
  • Измерение тока на виртуальном осциллографе

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Напрямую нет. Можно использовать падение напряжения на калиброванном резисторе 0.1-0.001 Ом, добавленном в цепь, чем меньше сопротивление - тем точнее замер, но тем более чувствительным должен быть осцилограф.
    А вообще-то это физика, класс 10-11, принципы работы вольтметра и амперметра.
    Ответ написан
    Комментировать
  • Почему не удается выполнить вставку посредством mysqli::query?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    $query = "INSERT...

    string(245) "INSERN...

    Какая из двух строк с ошибкой?
    Сообщение об ошибке MySQL содержит фрагмент строки запроса, начинающийся с места, где была обнаружена ошибка.
    Ответ написан
    Комментировать