Era*_*mus 5 arrays string matlab
我试图将系数数组写入1列(A1)下的Excel文件中.这是我的片段:
filename = 'cheby2coefs.xlsx';
for Order = 1:1
fprintf('This is');
disp(Order);
[b,a] = cheby2(Order, 20, 300/500);
disp([b,a]);
%xlswrite(filename,{'Order ',Order},'A1'); %string
xlswrite(filename,'b','A1'); %string
xlswrite(filename,b');
xlswrite(filename,'a'); %string
xlswrite(filename,a');
end
Run Code Online (Sandbox Code Playgroud)
我瞄准的输出是这样的:

但是,我的代码只是不断创建其他工作表.实现这个的正确方法是什么?
问题出在xlswrite以下几行:
来自xlswrite文档:
xlswrite(filename,A,sheet)写入指定的工作表。
这意味着您正在将字符串“b”写入工作表“A1”xlswrite(filename,'b','A1');
xlswrite(filename,A)将数组 A 写入 Excel 文件(文件名)中的第一个工作表,从单元格 A1 开始。
实际上,你不需要做任何事情就可以开始 A1 写作。假设 b 是行向量:
xlswrite(filename,b');
Run Code Online (Sandbox Code Playgroud)
正如你所写,应该足够了。
如果你想指定工作表和列,你可以使用
xlswrite(filename,A,sheet,xlRange)
Run Code Online (Sandbox Code Playgroud)
更新:我现在无法尝试此操作,但我认为它应该有效。
您可以计算a每个b和order并将它们写入 xls 文件,如下所示:
r = 1; % row number
str = {'a', 'b'};
order = [1 3 5]; % The orders you want to calculate a and b with
for idx = 1:size(order, 2)
[b,a] = cheby2(order(idx), 20, 300/500); % I do not know about second
% and third parameters, you should
% check them.
vals = [a; b]; % assuming they are row vectors
cellName = strcat('A', r);
orderName = strcat('Order ', order(idx));
xlswrite(filename, orderName, 1, cellName)
r = r + 1;
for jdx=1:2
cellName = strcat('A', r);
xlswrite(filename, str{jdx}, 1, cellName);
r = r + 1;
cellName = strcat('A', r);
xlswrite(filename, vals(jdx, :), 1, cellName);
r = r + size(vals, 2);
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4763 次 |
| 最近记录: |