excel学习库

excel表格_excel函数公式大全_execl从入门到精通

用chatgpt编程,能不能达到实用要求?

本文用科研软件matlab考察chatgpt的编程能力。

////////////////////////////////////////////////////////////////

需求:从excel里不断更新的'sheet'表每60秒读取最新的一行数据,用matlab脚本编程

  • 需求说明:‘最新的一行数据’说的比较含糊,单一语句比较长

  • chatgpt秒答题——

以下是一个示例脚本,可以实现从特定Excel文件的特定sheet中读取最新的一行数据:

```matlab

% 定义Excel文件路径和sheet名称

excelFile = 'C:\path\to\your\file.xlsx';

sheetName = 'sheet';

% 设置读取数据的起始行和列

readRow = 1; % 从第1行开始读取(假设第1行是数据)

readColum = 'I'; % 读取到I列(假设j列是无数据)

% 循环读取数据

while true

% 打开Excel文件

[~, ~, raw] = xlsread(excelFile, sheetName);

% 获取表格行数

numRows = size(raw, 1);

% 如果有新数据,则读取最新一行

if numRows > readRow

% 获取最新一行数据

newRow = raw(numRows, 1:readColumn);

% 在这里写下你的数据处理代码,比如:

fprintf('读取到最新数据:%s\n', strjoin(newRow, ', '));

end

% 等待1小时再读取下一行数据

pause(3600);

end

```

需要注意的是,该脚本会不断循环读取数据,直到手动停止程序运行。此外,如果Excel文件中的数据格式发生变化,可能需要调整代码以适应新的数据结构。

  • 运行脚本报错:

“Error using :

For colon operator with char operands, first and last operands must be char.

Error in read_excel

newRow = raw(numRows, 1:readColumn);”

此句代码也不对: fprintf('读取到最新数据:%s\n', strjoin(newRow, ', '));

  • 修改一下运行成功:

% 定义Excel文件路径和sheet名称

excelFile = 'input.xlsx';

sheetName = 'sheet';

% 设置读取数据的起始行和列

readRow = 1; % 从第1行开始读取

readColumn = 'I'; % 读取到I列

% 循环读取数据

while true

% 打开Excel文件

raw= readtable(excelFile);

% 获取表格行数

numRows = size(raw, 1);

disp(numRows);

% 如果有新数据,则读取最新一行

if numRows > readRow

% 获取最新一行数据

newRow = raw(numRows,:);

% 在这里写下你的数据处理代码,比如:

disp(newRow);

end

% 等待1小时再读取下一行数据

pause(60);

end

  • 上述代码说明了chatgpt的代码改一改能用

/////////////////////////////////////////////////////

需求:用matlab的timer写与前面的需求相同的功能

  • 说明:考察一下chatgpt的上下文理解

  • chatgpt秒答——

以下是用MATLAB的timer实现与前面需求相同的功能的示例代码:

% 设置定时器

t = timer;

t.ExecutionMode = 'fixedRate';

t.Period = 1; % 每隔1秒执行一次

t.TimerFcn = @aTimerFcn;

% 启动定时器

start(t);

% 定时器回调函数

function aTimerFcn(~, ~)

% 在此处编写与前面需求相同的代码

% 停止定时器

stop(t);

在上面的代码中,首先创建了一个timer对象,并设置了其执行模式为fixedRate,表示定时器会按照固定的频率执行,每隔1秒执行一次。然后,将aTimerFcn函数设置为定时器的回调函数,即每次定时器执行时都会调用aTimerFcn函数。

在aTimerFcn函数中,可以编写与前面需求相同的代码,例如读取温度传感器的数据,并将数据保存到文件中。

通过调用start(t)来启动定时器,通过调用stop(t)来停止定时器。

  • 运行肯定报错

  • 写的代码逻辑有问题

问题在"function aTimerFcn(~, ~) % 在此处编写与前面需求相同的代码"。

上述代码说明了chatgpt逻辑能力一般

////////////////////////////////////////////////////////////////

需求:从excel里的'sheet'表读取第一行数据,'sheet'表的数据每60秒更新一次,请每60秒读取最近更新的数据的第一行,写入另外一个excel文件,用matlabtimer编程

  • 需求说明:描述、用语相对精准

  • chatgpt秒答——

以下是一个基本的MATLAB程序,可以实现你所需的功能。

```matlab

% 创建一个定时器对象,每60秒触发一次

t = timer('Period', 60, 'ExecutionMode', 'fixedRate', 'TimerFcn', @readAndUpdateExcel);

% 启动定时器

start(t);

function readAndUpdateExcel(~,~)

% 读取最近更新的数据的第一行

data = xlsread('filename.xlsx', 'sheet', 'A1:A1');

% 将数据写入另外一个excel文件

xlswrite('new_filename.xlsx', data, 'sheet', 'A1');

end

```

  • 上述代码不能拿来用

  • chatgpt被问懵了

////////////////////////////////////////////////

问chatgpt类似的问题,chatgpt会用不同的方法回答,完成度一般。

说chatgpt不对,它还会礼貌地道歉。

综上所述,chatgpt理解业务需求的能力一般,还不能替代哪怕普通的程序员,但是当程序员的助理不错,能帮助其提高工作效率。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接