理想的方式导入csv数据和创建列向量,将变量我想一起工作

34视图(30天)
你好,
我有一个. csv文件,我想进口和创建列vecotrs(变量),我和我的代码可以进一步操作。下面是我的代码。我也想删除南的所有列的值。另外我想muliply所有的肌电图数据列在1000年年底这就是为什么这个数字有我的代码。这段代码似乎工作,但我被告知不要在代码编写和使用eval只是想看看是否有人可以检查并提供任何其他建议代码不同。
提前谢谢你!
文件名=“RESP_Trial_3.csv”;
column_names = {“RLT”,“RLTx”,“RLTy”,“RLTz”,“常规”,“RUTx”,“RUTy”,“RUTz”,“里克”,“RICx”,“RICy”,“RICz”,
“RPEC”,“RPECx”,“RPECy”,“RPECz”,“数”,“RPSx”,“RPSy”,“RPSz”,“路”,“黑索今”,“RDy”,“RDz”,
“基本”,“RRAx”,“RRAy”,“RRAz”,“抢劫”,“ROBx”,“罗比”,“ROBz”,“Analog21”,“Analog22”,“Analog23”,“同步”};
EMGVariables = {“RLT”,“常规”,“里克”,“RPEC”,“数”,“路”,“基本”,“抢劫”,“同步”};
%阅读导入的矩阵表和创建数据结构来存储变量
%在工作区中创建变量具有相同的列名称和名称
%分配相应的矩阵的列值
矩阵= readmatrix(文件名,“HeaderLines”7);
=数据结构();
i = 1:元素个数(column_names)
variable_name = column_names {};
assignin (“基地”、variable_name矩阵(:,i));
结束
%去除南
i = 1:元素个数(EMGVariables)
variable_name = EMGVariables {};
变量= 1000 * eval (variable_name);
变量(isnan(变量))= [];
assignin (“基地”、variable_name变量);
结束
1评论
Stephen23
Stephen23 2023年1月23日
“这段代码似乎工作,但我被告知不要在代码编写使用eval……”
EVAL和ASSIGNIN和各种各样的人:
“…和just wanted to see if someone can check it and offer any other suggestions to code it differently"
使用一个表。

登录置评。

接受的答案

dpb
dpb 2023年1月23日
文件名=“RESP_Trial_3.csv”;
column_names = {“RLT”,“RLTx”,“RLTy”,“RLTz”,“常规”,“RUTx”,“RUTy”,“RUTz”,“里克”,“RICx”,“RICy”,“RICz”,
“RPEC”,“RPECx”,“RPECy”,“RPECz”,“数”,“RPSx”,“RPSy”,“RPSz”,“路”,“黑索今”,“RDy”,“RDz”,
“基本”,“RRAx”,“RRAy”,“RRAz”,“抢劫”,“ROBx”,“罗比”,“ROBz”,“Analog21”,“Analog22”,“Analog23”,“同步”};
EMGVariables = {“RLT”,“常规”,“里克”,“RPEC”,“数”,“路”,“基本”,“抢劫”,“同步”};
选择= detectImportOptions(文件名);%得到对象导入选项
opt.MissingRule =“omitrow”;%跳过任何不完整的行
opt.ImportErrorRule =“omitrow”;%同样不好的转换…
tData = readtable(文件名,选择,“HeaderLines”7);%,把表中
tData.Properties.VariableNames = column_names;%和名称的变量
tData {: EMGVariables} = 1000 * tData {:, EMGVariables};%通过变量名和规模给定子集
如上面所示,您可以动态地解决任何/所有变量的名字没有有一百万种不同的变量没有使用非常缓慢,难以调试 eval 表达式的简单的使用一个表的权宜之计。
使用导入对象还可以清洁任何坏的表导入数据的重要特征失踪在前面的数据作为独立变量在未必是一致的长度/样本之间的位置——一个缺失值没有被补偿在另一列。
10评论

登录置评。

更多的答案(0)

标签

s manbetx 845


释放

R2022a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!