error using horzcat function
4 次查看(过去 30 天)
显示 更早的评论
Very simple code of adding two matrices horizontally retyrns an error using horzcat, dimensions of arrays being concatenated are not consistent. the error is on line (theta = [theta(:,1:6),zeros(length(theta),1)];).
the excel file has a matrix of 4x6, which i check with size theta even.
the code is:
clear all
clc
% Input:
tmp = importdata ('exp.xlsx');
theta = tmp.data;
theta = [theta(:,1:6),zeros(length(theta),1)];
% Calcu
theta (:,7) = theta (:,2).*theta(:,3);
%output
file_name = 'total.txt';
fid = fopen(file_name,'w');
fprintf(fid,'This file is written by matlab code.\n\n');
fprintf(fid,'This code will calculate the total.\n\n');
for i = 1:length(theta)
fprintf(fid,'The total of %d with age %f and exp %f is %f.\n',theta(i,1),theta(i,2),theta(i,3),theta(i,4));
end
fprintf(fid,'\nENDFILE');
fclose (fid);
0 个评论
采纳的回答
VBBV
2023-6-14
编辑:VBBV
2023-6-14
theta = [theta(:,1:6),zeros(size(theta,1),1)];
4 个评论
Steven Lord
2023-6-14
The length function on a non-empty array returns the size in the longest dimension of your array. That's not necessarily the number of rows.
A = ones(3, 6);
length(A)
Calling size with 1 as the dimension input will give you the number of rows in the array.
size(A, 1)
更多回答(1 个)
Satwik
2023-6-14
You can make the following change if your goal is to concatenate.
tmp = zeros(4,6);
theta = tmp;
theta = [theta(:,1:6),zeros(size(theta,1),1)]
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!