我有一个来自文本文件的矩阵2x20 我想在该矩阵中添加一行
twopts = reshape(textread('input.txt', '%s'),2,20); % 2 by 20
ones_row = ones(1,20); %1 by 20 of ones
twopts = [twopts;ones_row]
给我一个错误:
“使用vertcat CAT参数的错误尺寸不一致。”
但是矩阵尺寸匹配... 2x20和1x20以使3x20
它有什么问题,如何解决?
答案 0 :(得分:2)
twopts
是一个字符串的单元格数组,ones_row
是一个矩阵,你不能将它们放在一起。
这样做你想要的吗?
twopts = reshape(textread('input.txt', '%s'),2,20); % 2 by 20
ones_row = ones(1,20); %1 by 20 of ones
ones_row = mat2cell(ones_row, 1, ones_row); % convert to cell array
twopts = [twopts;ones_row]
或者,如果输入数据包含数字而不是文本,则可能需要将单元格数组转换为矩阵:
twopts = reshape(textread('input.txt', '%s'),2,20); % 2 by 20
twopts = cellfun(@str2num,twopts);
ones_row = ones(1,20); %1 by 20 of ones
twopts = [twopts;ones_row]
答案 1 :(得分:0)
不像现在那样读取字符串,而是尝试简单地读取数字(即 - 如果您的数据是数字)。只需将%s
参数省略到textread
:
twopts = textread('input.txt');
ones_row = ones(1,20);
twopts = [twopts; ones_row];
答案 2 :(得分:0)
如果您的数据是数字,您可以尝试使用
twopts = importdata('input.txt');
ones_row = ones(1,20);
twopts = [twopts; ones_row];