0

我没有 matlab 或数学经验,但我想做以下事情:

  • 将excel文件转换为制表符分隔文件并在matlab中打开它,按以下方式组织:每一行是一个新主题第一列是主题名称其他8列是每个主题的参数

  • 我想对每个主题运行一个增长函数并获得以下结果最大速度和相应的增长和时间达到最大速度之前的最小速度以及相应的时间和增长最大增长(函数接近渐近线)

- 这是我将使用的代码

tmin=0;
tmax=20;
dt=1
t=tmin:dt:tmax;
y = m1.*(1-1./(1+(m2.*(t+m8)).^m5+(m3.*(t+m8)).^m6+(m4.*(t+m8)).^m7));
dy=diff(y)./dt;
max(dy);
min(dy);
imax=find(dy==max(dy))+1;
imin=find(dy==min(dy))+1;
t(imax);
t(imin);
y(imax);
y(imin);
y(20);

我应该把这段代码放在哪里,以便它知道 m1 到 m8 对应于我文件中的不同列?我如何链接这些?我如何确保每个主题的输出出现在我的制表符分隔文件的列中(如 excel)

简而言之,我想做的是:有一个文件,每行都有一个新主题,第 2-9 列是参数 m1 到 m8 的值。运行公式,以便在第 9 列中,我将获得最大速度,在 10 列中,我将获得最小速度,等等...

谁能帮我吗

谢谢

4

2 回答 2

0

您可以通过双击 xls 文件来导入数据。应出现一个对话框。选择要导入的数据范围。

然后,您可以简单地声明 untitled(:,1) = m1 等。

于 2013-06-05T20:02:21.593 回答
0

[~,~,rawData]=xlsread('yourExcelSheet.xlsx')

SubjectNames=rawData(:,1) % 我认为这里的 () 比 { } 更好,可能需要将其切换。

Data=cell2mat(rawData(:,2:9)) % 将最后 8 列(2 到 9)转换为 double 类型的矩阵是 %rawData(2:end,2:9) 而不是我上面的

m1=Data(:,2) m2=Data(:,3) % 等等 m8=Data(:,9)

或者,如果你能克服混乱,在你的方程中用“Data(:,2)”代替m1,它会给你一个小小的加速

免责声明:我只是在脑海中写下所有这些,如果它有错误,希望它只是一些小问题,否则请告诉我。

于 2013-06-05T20:02:30.610 回答