每次在 MATLAB 中运行代码时,如何更新下一列中我的 Excel 工作表中的计算数据?

Posted

技术标签:

【中文标题】每次在 MATLAB 中运行代码时,如何更新下一列中我的 Excel 工作表中的计算数据?【英文标题】:How can I update calculated data in my excel sheet in the next column each time I run my code in MATLAB? 【发布时间】:2018-07-21 09:29:17 【问题描述】:
function []= process(f1, f2, f3, f4, height, th)

%%omitted the the large code from in between in order to just propose the problem%% 

ValuesInInches(12)=t1*t;
ValuesInInches(8)=realneck(f1,f2,height,th);
ValuesInInches(14)=t3*t; 
ValuesInInches(7)=t4*t;
ValuesInInches(11)= ValuesInInches(7);
ValuesInInches(5)=t5*t;
ValuesInInches(4)=t6*t;
ValuesInInches(6)=t7*t;
ValuesInInches(10)=t8*t;
ValuesInInches(9)=t9*t;
ValuesInInches(3)=t9*t1;
ValuesInInches(1)=t*t10;
ValuesInInches(2)=t11*t;
ValuesInInches(13)= measureknee(a5,t);
ValuesInInches=ValuesInInches';

file='measure.csv';

measurements1,1='Shirt Length';
measurements2,1='Full Shoulders';
measurements3,1='Sleeves';
measurements4,1='Muscle';
measurements5,1='Chest';
measurements6,1='Stomach';
measurements7,1='Hip';
measurements8,1='Neck';
measurements9,1='Trouser length';
measurements10,1='Trouser waist';
measurements11,1='Trouser hip';
measurements12,1='Thigh';
measurements13,1='Knee';
measurements14,1='Inseam';

T= table(measurements,ValuesInInches);
writetable(T,file);

end

每次更改代码时,我都必须更新文件 measure.csv 以创建值数据集。我能够将数据写入文件,但现在我需要当我的代码第二次运行时,它将计算的数据写入下一列,同时保持旧数据的安全。我的代码要么覆盖同一列中的数据,要么我每次都必须手动输入特定的行列交叉位置。

我的代码每次运行都会计算 14 个值。请告诉我一种方法,以便我可以在我的父函数中使用它来提高整个过程的效率。

【问题讨论】:

没有Minimal, Complete, and Verifiable example,很难为您提供帮助。 读入整个工作表,在 MATLAB 表中添加一个新列,覆盖整个工作表? 我已经添加了部分代码,请立即查看并帮助我 【参考方案1】:

首先,如果您正在编写 Excel 表格,我宁愿建议您使用函数xlswrite(filename,Data,sheet,pos),它允许您专门将值、向量或矩阵设置到您想要的工作表中的特定位置。

第二:如果你可以使用一个计数器来跟踪你写入的行数,你可以这样做:

function []= process(f1, f2, f3, f4, height, th, counter)
% Your code...
% suppose you want to write ValuesInInches into the next row

strCounter = ('A':'Z'); % = 'ABC...Z'
strPos = [strCounter(counter) '1']; % = 'B1' for instance
xlswrite(file,ValuesInInches,strPos);

end

我希望这会有所帮助。

【讨论】:

如果您将问题标记为已回答,我会很高兴 :)

以上是关于每次在 MATLAB 中运行代码时,如何更新下一列中我的 Excel 工作表中的计算数据?的主要内容,如果未能解决你的问题,请参考以下文章

matlab中如何给已有矩阵插入一行或一列值

如何使用 matlabcontrol 从 Java 调用 Matlab 函数而不每次都启动新会话?

如果上一列值不为空,则更新表中的下一列

如何使用matlab将文本转换为数值型数据?

如何在Matlab中将每个矩阵与平均值和返回值进行比较

调度触发后使用状态