Регулировка ширины столбца в зависимости от размера - PullRequest
0 голосов
/ 17 октября 2018

Я приложил изображение, чтобы лучше объяснить мою проблему.Если вы заметили, между каждым столбцом есть небольшой интервал, и это из-за того, как я написал свой код, который просто выравнивает по левому краю, расстояние 32, после каждого размещения столбца.Вот код:

    function this = writeDataToFile(this, fileName)
       fid = fopen(fileName, 'w');
       for row=1:size(this.metaPrint,1)
           for col=1:size(this.metaPrint,2)
                fprintf(fid, '%s', this.metaPrint(row,col));
           end
           fprintf(fid, '\n');
       end %for

       %Write labels and units to file. These are cell arrays. Under
       %this is the numeric array of data.
       fprintf('\n');
       fprintf(fid, '%-42s', '============start of data============'); 
       fprintf(fid, '\n');
       fprintf(fid, '%-32s', this.colLabels{:});
       fprintf(fid, '\n');
       fprintf(fid, '%-32s', this.colUnits{:});
       fprintf(fid, '\n');

       for row=1:size(this.data,1)
           for col=1:size(this.data,2)
               fprintf(fid, '%-32s', this.data(row,col));
           end %for
           fprintf(fid, '\n');
       end %for
       fclose(fid);
    end %writeDataToFile

Итак, вы можете видеть, что я просто жестко кодирую интервал, и это потому, что по линии столбцов я достигаю места, где colLabel - это строка из 30 символов,Если я уменьшу расстояние слишком маленьким, это приведет к путанице на выходе, когда достигнет этой точки.

Теперь и colLables, и colUnits сохраняются в массиве ячеек как char, а данные хранятся в числовом массиве как double.То, что я хотел бы сделать, это иметь возможность настроить интервал на основе максимальной длины в столбцах любой данной строки - так, чтобы всегда было maxRowLength + 2 пробела на столбец (давая мне два пробела между столбцами).Есть ли способ сделать это с помощью функции?Каков наилучший способ реализации такого рода реализации?

Заранее благодарим вас и, пожалуйста, дайте мне знать, если есть что-то еще, что я могу предложить, или какой-либо способ дальнейшего улучшения размещенного кода (даже если этоне связаны).

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...