Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 如何在matlab中从表格单元格中提取字符串_String_Matlab_Csv_Cell - Fatal编程技术网

String 如何在matlab中从表格单元格中提取字符串

String 如何在matlab中从表格单元格中提取字符串,string,matlab,csv,cell,String,Matlab,Csv,Cell,我在Matlab中导入了一个csv文件data\u tr 1, abc 2, def ... 现在打算在我的代码中使用字符串 save_location = strcat('trial\tr_',data_tr(i,2),'.png'); 这导致了以下错误: 输入必须是字符向量、字符向量的单元格数组或字符串数组 变量data\u tr(i,2)被视为1x1表而不是字符串 在看到一些答案(一)后,我还尝试了以下方法: da = data_tr(i,2); h = [da{:}]; save_l

我在Matlab中导入了一个csv文件
data\u tr

1, abc
2, def
...
现在打算在我的代码中使用字符串

save_location = strcat('trial\tr_',data_tr(i,2),'.png');
这导致了以下错误:

输入必须是字符向量、字符向量的单元格数组或字符串数组

变量
data\u tr(i,2)
被视为1x1表而不是字符串

在看到一些答案(一)后,我还尝试了以下方法:

da = data_tr(i,2);
h = [da{:}];
save_location = strcat('trial\tr_',h,'.png');
但这显示了一个订阅错误:

使用main(第14行(即第h行=[da{:}];)时出错)

不能使用线性索引(一个下标)或多维索引(三个或更多)为表下标 下标)。使用行下标和变量下标


有人能帮我从csv文件中提取字符串吗。

或者使用大括号访问table元素

data_tr{i,2} % Get the element of a table rather than data_tr(I,2)
或者将其转换为单元格,因为strcat可以接受单元格输入

data_tr_cell = table2cell(data_tr);
data_tr_cell(i, 2);

听起来像是使用某种导入工具(例如)手动加载数据。相反,你可能会让事情变得更容易。这将使您能够根据正在使用的特定文件格式定制数据加载,并对数据格式有更多的控制

例如,对于给定的示例文件,您可以使用:

或者您可以使用:


您是否尝试了什么并使用了
save_location=strcat('trial\tr_',data_tr{i,2},.png')?是的,我使用了帮助strcat。它接受字符串作为输入。此外,strcat(int2str(28),'trial.png')
工作正常。问题是
da=data_tr(i,2)视为1x1表(如var部分所示),我不知道如何从中提取字符串。您可以尝试使用
data\u tr.Var2{i,1}
。该表将自动将
Var1
Var2
等指定为表中的变量名,因此第二列应该是
Var2
。这是有效的。我转到导入数据部分,在导入时,将列重命名为col_1和col_2<代码>数据列1(i)
是正确的语法。谢谢!解析请实际阅读我链接的文档。
()
{}
之间有区别。谢谢!我也不知道。后面的方法更有用,因为**strcat**的输出也是单元格。我对数据使用了csvread,但为了重命名列,我手动导入了表。无论如何,它会创建相同的300x2表,我不知道如何使用大括号访问字符串。不过谢谢你的建议!
[~, strData] = xlsread('data_tr.csv');  % Load string data into a cell array
strData = strtrim(strData);             % Remove leading or trailing blanks
...
save_location = strcat('trial\tr_', strData{i}, '.png');  % Access a string
fid = fopen('data_tr.csv', 'r');               % Open file for reading
C = textscan(fid, '%*d%s', 'Delimiter', ',');  % Read just the strings
fclose(fid);                                   % Close file
strData = C{1};                                % Remove cell encapsulation
...
% Use the same way as above