数组中的MATLAB字符串

问题描述 投票:0回答:1

我知道我对数组和字符串非常困惑,并尝试了很多东西,但我仍然难过。我有数据组,我正在拉入各种数组。例如,我有来自一个来源的站点位置。许多核心可以在一个位置。核心可以有多个深度。所以我以各种方式将所有这些数据拉到一起,并将其推送到每个核心的单个excel文件中。我根据位置ID和核心名称以及核心采样的年份创建了一个文件名。所以它可能看起来像'ID_14_CORE_Bu-2-MT-1991.xlsx'并且我将它存储在一个名为“filename”的变量中用于xlswrite语句。这一切都正常。但现在我想跟踪我创建的文件以及何时在另一个EXCEL文件中创建它们。所以我试图将位置,文件名和处理日期存储到某种数组中,以便在处理完可能出现的所有位置/核心/层后,我可以使用xlswrite语句将其全部推出。原始输入文件。 当我启动程序并查看原始输入文件时,我可以计算出我拥有多少核心,因此我想创建某种类型的数组来保存位置,文件名和日期。我试图使用一个单元格数组(a = cell(numcores,3)),但这似乎不起作用。我想我理解文件名实际上是一个字符串数组,因此每个字母都试图分配给一个单独的单元格,而不仅仅是第二列中的单元格。

我也在尝试将三个值推送到汇总EXCEL文件时遇到问题,因为每个核心都在处理,但MATLAB倾向于将单维数组视为一行而不是列,所以我有点困惑。

下面是我想要一个数组最终结果...但由于我正在动态开发文件名,这似乎更具挑战性。

ArraytoExcel = [“14”, “ID_14_CORE_Bu-2-MT-1991.xlsx”,”1/1/2018”;
“14”, “ID_14_CORE_Bu-3-MT-1991.xlsx”,”1/1/2018”;
“13”, “ID_13_CORE_Tail_33-1992.xlsx”,”1/1/2018”;]

也许我只是以错误的方式解决这个问题。任何建议都会有帮助。

arrays excel string matlab
1个回答
1
投票

你的问题有点令人困惑,但我认为你想做的事情如下。我的示例中的变量是静态的,但从你的问题来看,听起来你已经有了这些想法。

numcores = 5;  %.. Or however, you determine what you are procesing
ArraytoExcel = cell(numcores ,3);
for ii = 1:numcores      
    %These 3 things will need to determined by you in the loop
    % and not be static like in this example.
    coreID   = '14';    
    filename = 'ID_14_CORE_Bu-2-MT-1991.xlsx'; %
    dataProc =  datestr(now,'mm/dd/yyyy');    
    ArraytoExcel(ii,:) = {coreID,filename,dataProc};
end
xlswrite('YourOutput.xls',ArraytoExcel)
© www.soinside.com 2019 - 2024. All rights reserved.