Matlab слишком много входных аргументов с помощью csvread
У меня есть файлы с именами t1_25, t1_45, t1_65, t2_25, t2_45 и так далее до t5_65.
Я написал этот кусок кода:
MaxForce =[0,0,0;0,0,0;0,0,0;0,0,0;0,0,0;0,0,0];
MaxForce(1,1) = 25;
MaxForce(1,2) = 45;
MaxForce(1,3) = 65;
HeightNo = 3;
NoOfRepeats = 5;
for x = 1:HeightNo
for y =1:NoOfRepeats
if x == 1
MaxForce(y+1,x)= ((max(csvread('t', y, '_25.csv',1,1)))-0.392)/0.000267;
if x ==2
MaxForce(y+1,x)= ((max(csvread('t', y, '_45.csv',1,1)))-0.392)/0.000267;
if x ==3
MaxForce(y+1,x)= ((max(csvread('t', y, '_65.csv',1,1)))-0.392)/0.000267;
end
end
end
end
end
MaxForce(:,:)
Это говорит об ошибке в проекте (строка 10) MaxForce(y+1,x)= (max(csvread('t', y, '_25.csv',1,1))-0.392)/0.000267;
- Почему?
@user14663, 👍0
Обсуждение1 ответ
▲ 1
Вам следует улучшить свой вопрос, и, похоже, он вообще не связан с arduino. Однако я думаю, что вы пытаетесь автоматически сгенерировать имя файла, который вы используете в cvsread, в соответствии со значением y
. Это можно сделать с помощью sprintf
, в вашем случае для первого выражения csvread(sprintf('t%d_25.csv',y),1,1)
.
Хотя структура вашего кода кажется действительно запутанной, взгляните на ваши конечные
инструкции.
,
@brtiberio
Смотрите также:
- Взаимодействие MPU6050 с Arduino через S-функцию Simulink
- Serial.availableForWrite против Serial.flush
- MATLAB+Arduino+LCD
- Графический интерфейс с микроконтроллером для управления устройством через SPI
- Проблема при отправке числа с плавающей запятой и нескольких чисел с плавающей запятой
- Отправка двойных данных из Matlab в Teensy 3.6 через microUSB
- Обновление прошивки Arduino Mega2560.
- Отправка синусоиды из MATLAB и чтение на Arduino Uno
Потому что вы не использовали ни одного из правильных способов вызова функции csvread (). Если вы сомневаетесь, [ПРОЧТИТЕ ИНСТРУКЦИЮ](http://uk.mathworks.com/help/matlab/ref/csvread.html)., @CharlieHanson