【发布时间】:2015-08-15 00:15:34
【问题描述】:
我想从文本文件中提取一个数字。 首先我读取文件并导入为以下形式的单元格数组:
A = {
'1 0 0 0 - 0: 0.000741764'
'2 0 0 0 - 0: 100'
'3 0 0 0 - 0: 100'
'4 0 0 0 - 0: 100'
'5 0 0 0 - 0: 0.00124598'
'6 0 0 0 - 0: 0.000612725'
'7 0 0 0 - 0: 0.000188365'
'8 0 0 0 - 0: 0'
'9 0 0 0 - 0: 0'
'10 0 0 0 - 0: 0'
'11 0 0 0 - 0: 0'
'12 0 0 0 - 0: 0'};
我需要根据左侧整数的值来获取右侧的数字。 比如我需要知道3和6对应的值(100和0.000612725):
'3 0 0 0 - 0: 100'
'6 0 0 0 - 0: 0.000612725'
这是我的代码:
clear all
close all
clc
A = {
'1 0 0 0 - 0: 0.000741764'
'2 0 0 0 - 0: 100'
'3 0 0 0 - 0: 100'
'4 0 0 0 - 0: 100'
'5 0 0 0 - 0: 0.00124598'
'6 0 0 0 - 0: 0.000612725'
'7 0 0 0 - 0: 0.000188365'
'8 0 0 0 - 0: 0'
'9 0 0 0 - 0: 0'
'10 0 0 0 - 0: 0'
'11 0 0 0 - 0: 0'
'12 0 0 0 - 0: 0'};
THREE = 3;
SIX = 6;
M = cellfun(@str2num, A, 'UniformOutput', false);
Values = cell2mat(M);
Index_3 = find(Values(:,1) == SIX);
Index_6 = find(Values(:,1) == SIX);
sp_3 = strsplit(A{Index_3},':');
sp_6 = strsplit(A{Index_6},':');
VALUE_3 = str2double(sp_3(end));
VALUE_6 = str2double(sp_6(end));
但我得到一个错误:
Error using cat
Dimensions of matrices being concatenated are not consistent.
Error in cell2mat (line 84)
m{n} = cat(1,c{:,n});
Error in test (line 23)
Values = cell2mat(M);
,因为:
M =
[1x4 double]
[1x104 double]
[1x104 double]
[1x104 double]
[1x4 double]
[1x4 double]
[1x4 double]
[1x4 double]
[1x4 double]
[1x4 double]
[1x4 double]
[1x4 double]
我试过了:
str2double
相反,我得到 M 中所有值的 NaN。
【问题讨论】:
标签: string matlab numbers cell