擅长:python、mysql、java
<p>首先,在原始代码中,您将整个文件读取两次,这是不必要的。这里有一个简化:</p>
<pre><code>simulink_robot_motor=[]
with open(filename,'r') as data_file:
for line in data_file:
current_line = list(map(float, line.split(',')))
simulink_robot_motor.append(current_line)
print(simulink_robot_motor) # -> [[0.0, 3.6], [1.6e-06, 3.6], [4.57e-06, 3.6], [7.67e-06, 3.6], [1.09e-05, 3.6]]
</code></pre>
<p>当您试图将代码转换为函数时,出现了两个问题,一个是<code>simulink_robot_motor</code>变成了函数外不存在的局部变量。第二个是在第二个<code>for line in data_file:</code>循环中有一个<code>return</code>语句,这意味着它将在只读取一行之后返回。你知道吗</p>
<p>下面修复了这两个问题,并展示了如何使用新函数:</p>
<pre><code>def get_matlab_sensor_data():
results=[]
with open(filename,'r') as data_file:
for line in data_file:
current_line = list(map(float, line.split(',')))
results.append(current_line)
return results
simulink_robot_motor = get_matlab_sensor_data()
print(simulink_robot_motor) # -> same results as before
</code></pre>