MATLAB:从所有矩阵元素中删除分号
我正在读一个.txt文件,当它读入matlab时,我得到了正确的向量和所有东西,除了它们在每个数字的末尾有一个分号。现在,我不确定是在读取文件时更正此错误更好,还是在读取文件后用一些代码快速更正它更好。不幸的是,我不知道如何修复它。我正在做这样的事情MATLAB:从所有矩阵元素中删除分号,matlab,Matlab,我正在读一个.txt文件,当它读入matlab时,我得到了正确的向量和所有东西,除了它们在每个数字的末尾有一个分号。现在,我不确定是在读取文件时更正此错误更好,还是在读取文件后用一些代码快速更正它更好。不幸的是,我不知道如何修复它。我正在做这样的事情 for i = 1:100000 try disp(strcat('ToF_ROI_XYZcoordinates_', num2str(i), '.txt')); ToF_File_ID = fopen(st
for i = 1:100000
try
disp(strcat('ToF_ROI_XYZcoordinates_', num2str(i), '.txt'));
ToF_File_ID = fopen(strcat('ToF_ROI_XYZcoordinates_', num2str(i), '.txt'));
ToF_XYZ_Coordinates(i,:) = textscan(ToF_File_ID,'%s %s %s');
fclose(ToF_File_ID);
disp(strcat('Navi_Endo_RefOrient_', num2str(i), '.txt'))
Navi_Orient_File_ID = fopen(strcat('Navi_Endo_RefOrient_', num2str(i), '.txt'));
Navi_Endo_RefOrient(i,:) = textscan(Navi_Orient_File_ID,'%s');
fclose(Navi_Orient_File_ID);
disp(strcat('Navi_Endo_RefOffsetPosVec_', num2str(i), '.txt'))
Navi_Offset_File_ID = fopen(strcat('Navi_Endo_RefOffsetPosVec_', num2str(i), '.txt'));
Navi_Endo_RefOffsetPosVec(i,:) = textscan(Navi_Offset_File_ID,'%s');
fclose(Navi_Offset_File_ID);
catch err
break
end
end
编辑:如果你感到困惑,我的矩阵看起来像这样
[ 1; 2; 3; 4; ]
| 5; 6; 7; 8; |
| 9; 1; 2; 3; |
[ 4; 5; 6; 7; ]
我想要这样
[ 1 2 3 4 ]
| 5 6 7 8 |
| 9 1 2 3 |
[ 4 5 6 7 ]
如果能帮我把这些分号从新变量中去掉,那就太好了,谢谢 还有一些事情尚不清楚,但假设您使用以下代码生成矩阵:
textscan(ToF_File_ID,'%s %s %s')
如果您想解析它以去除半列,可以将其更改为:
strrep(textscan(ToF_File_ID,'%s %s %s'), ';', '')
你能做矩阵A=A'的转置吗。。。我想你误解了我的矩阵。分号不是输入,而是输出。所以它们是矩阵中的一个字符串。我需要把那根绳子完全去掉。转置只会将它放在其他地方,每个矩阵元素仍然会将它放在里面。
ToF\u ROI\u XYZcoordinates\uu
的示例内容是什么,ToF\u ROI\u XYZcoordinates\u
和Navi\u Endo\u RefOffsetPosVec\u
.txt文件?为什么不在格式字符串中指定分号,然后读取如下整数值:'%d;%d、 %d、 "代码>?您可以使用regexprep
或strep
替换';'
与'
我不确定strep
是否已经存在很长时间了,如果您的版本不支持它,请尝试将其替换为regexprep
,您也可以使用textscan
与分隔符选项,这样就不需要strep
:textscan(豆腐文件ID,'%s%s%s','delimiter',{'',';'})