2

我有一个来自文本文件的矩阵 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

它有什么问题,我该如何解决?

4

3 回答 3

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]
于 2012-10-13T10:18:26.870 回答
0

不要像现在那样读取字符串,而是尝试简单地读取数字(即 - 如果您的数据是数字)。只需省略%s参数即可textread

twopts = textread('input.txt');
ones_row = ones(1,20);
twopts = [twopts; ones_row];
于 2012-10-13T11:13:08.120 回答
0

如果您的数据是数字,您可以尝试使用

twopts = importdata('input.txt');

one_row = 个(1,20);

twopts = [twopts; one_row];

于 2012-10-13T13:59:25.697 回答