我有黑白图像和我读了MATLAB的形象。我在MATLAB使用dlmwrite命令保存我的图片文件以二进制的0和1。
现在我想实现我想在第一排前50倍的值,然后在第二排在下一个50个值和第三个50个值在下一行等的算法。什么应该是它的代码。我写的代码,并获得在逻辑上的错误。
a= 100;
b= 100;
for j= 0:length(a)
for i= 0:length(b)
dlmwrite('rd.txt','rd[i,j]','delimiter','b','c');
end
end
我需要得到这样的
每行00000000000000000000000000000000000000000000000000 // 50比特每行每行00000000000000000000000000000000000000000000000000 // 50比特00000000000000000000000000000000000000000000000000 // 50比特。 。因此,对
我假设你有一个数组的0和1,并希望与给定的列宽以某种方式输出它们。如果是这样的话,reshape
一般可以做什么,我相信你想要的,除了你的数据可能不会在你列的宽度整除,即50的一种方法是先垫的数据,使得它,例如
data = 'abcdefghijklmnopqrstuvwxyz';
colwidth = 6;
% padding data to fit evenly in full rows
data = [data, repmat(' ', 1, colwidth-mod(numel(a), colwidth))];
% reshaping into columns of given width
reshape(data, colwidth, [])'
这会给你
5×6 char array
'abcdef'
'ghijkl'
'mnopqr'
'stuvwx'
'yz '
或者,你可以分别得到部分:
reshape(data(1:end-mod(numel(data), colwidth)), colwidth, [])'
data(end-mod(numel(data), colwidth)+1:end)
给你
ans =
4×6 char array
'abcdef'
'ghijkl'
'mnopqr'
'stuvwx'
ans =
'yz'