Tag Archives: matlab
Integrating Newton Andor camera with Matlab.
Dear friends,
I am trying to integrate the Newton Andor 920 camera with MATLAB. Generally, we have ‘gentl’ adaptors for capturing the video with matlab. But here the company doesnot provide the direct adaptor to use in MATLAB.
Hence, I request to please let me know if the Newton Andor 920 camera has now a built in adaptor to use. Or if someone has found a way to use Newton Andor 920 camera with matlab. or If some has an idea to develope an adaptor in MATLAB for it then please let me know.
Thanking you,
Kind regardsDear friends,
I am trying to integrate the Newton Andor 920 camera with MATLAB. Generally, we have ‘gentl’ adaptors for capturing the video with matlab. But here the company doesnot provide the direct adaptor to use in MATLAB.
Hence, I request to please let me know if the Newton Andor 920 camera has now a built in adaptor to use. Or if someone has found a way to use Newton Andor 920 camera with matlab. or If some has an idea to develope an adaptor in MATLAB for it then please let me know.
Thanking you,
Kind regards Dear friends,
I am trying to integrate the Newton Andor 920 camera with MATLAB. Generally, we have ‘gentl’ adaptors for capturing the video with matlab. But here the company doesnot provide the direct adaptor to use in MATLAB.
Hence, I request to please let me know if the Newton Andor 920 camera has now a built in adaptor to use. Or if someone has found a way to use Newton Andor 920 camera with matlab. or If some has an idea to develope an adaptor in MATLAB for it then please let me know.
Thanking you,
Kind regards image acquisition, matlab, adaptor, camera MATLAB Answers — New Questions
How to calculate mean of specified row and column of multiple dataset of structure?
I’m dealing with a structure full of data, one of the data is called BEST and there are 50 of them so that is data(i).best in which i is from 1 to 50, each data(i).best contains a 10×10 table of numbers. I need to calculate mean of each row and column corresponding to each data(i).best, for example I need to sum up all of the data that are in data(i).best(5,7) (i is from 1 to 50) and devide it by 50. how am I supposed to do so? I tried using three layers of "for" and it didn’t seem to help.I’m dealing with a structure full of data, one of the data is called BEST and there are 50 of them so that is data(i).best in which i is from 1 to 50, each data(i).best contains a 10×10 table of numbers. I need to calculate mean of each row and column corresponding to each data(i).best, for example I need to sum up all of the data that are in data(i).best(5,7) (i is from 1 to 50) and devide it by 50. how am I supposed to do so? I tried using three layers of "for" and it didn’t seem to help. I’m dealing with a structure full of data, one of the data is called BEST and there are 50 of them so that is data(i).best in which i is from 1 to 50, each data(i).best contains a 10×10 table of numbers. I need to calculate mean of each row and column corresponding to each data(i).best, for example I need to sum up all of the data that are in data(i).best(5,7) (i is from 1 to 50) and devide it by 50. how am I supposed to do so? I tried using three layers of "for" and it didn’t seem to help. structures, mean, data MATLAB Answers — New Questions
When will the transition from Java to Javascript be complete?
It’s been nearly ten years since MATLAB began to transition from Java to Javascript graphics. Is there any roadmap for when this transition will be complete? Long ago I was told that the final product would be seemless, i.e. traditional graphic commands would invoke Javascript yet otherwise function like the legacy Java version. Despite many improvements in the new system, the two are still quite different. The difference is most obvious on Mac systems, where uifigures are clearly handled separately from figures. I have stayed with traditional figures for most of this period, waiting for the Javascript alternative to mature, but this is no longer viable due to frequent crashes (as described here).
Recent experence suggests that uifigures are almost ready for general use, but there are a number of missing features. For me, the big ones are limited export options (e.g., improper size scaling for PDF) and the lack of an Extent property; the latter helps size items based on the text held inside them. If I had those features, I could justify the time investment in switching over to uifigures full time. There are also a lot of undocumented things, such as the fact that classic uicontrols can go inside Javascript uifigures, even though the formal documentation says otherwise. I wish Mathworks would be more forthright about this substantial change, focusing less on Live Editor and App Designer updates in each release.It’s been nearly ten years since MATLAB began to transition from Java to Javascript graphics. Is there any roadmap for when this transition will be complete? Long ago I was told that the final product would be seemless, i.e. traditional graphic commands would invoke Javascript yet otherwise function like the legacy Java version. Despite many improvements in the new system, the two are still quite different. The difference is most obvious on Mac systems, where uifigures are clearly handled separately from figures. I have stayed with traditional figures for most of this period, waiting for the Javascript alternative to mature, but this is no longer viable due to frequent crashes (as described here).
Recent experence suggests that uifigures are almost ready for general use, but there are a number of missing features. For me, the big ones are limited export options (e.g., improper size scaling for PDF) and the lack of an Extent property; the latter helps size items based on the text held inside them. If I had those features, I could justify the time investment in switching over to uifigures full time. There are also a lot of undocumented things, such as the fact that classic uicontrols can go inside Javascript uifigures, even though the formal documentation says otherwise. I wish Mathworks would be more forthright about this substantial change, focusing less on Live Editor and App Designer updates in each release. It’s been nearly ten years since MATLAB began to transition from Java to Javascript graphics. Is there any roadmap for when this transition will be complete? Long ago I was told that the final product would be seemless, i.e. traditional graphic commands would invoke Javascript yet otherwise function like the legacy Java version. Despite many improvements in the new system, the two are still quite different. The difference is most obvious on Mac systems, where uifigures are clearly handled separately from figures. I have stayed with traditional figures for most of this period, waiting for the Javascript alternative to mature, but this is no longer viable due to frequent crashes (as described here).
Recent experence suggests that uifigures are almost ready for general use, but there are a number of missing features. For me, the big ones are limited export options (e.g., improper size scaling for PDF) and the lack of an Extent property; the latter helps size items based on the text held inside them. If I had those features, I could justify the time investment in switching over to uifigures full time. There are also a lot of undocumented things, such as the fact that classic uicontrols can go inside Javascript uifigures, even though the formal documentation says otherwise. I wish Mathworks would be more forthright about this substantial change, focusing less on Live Editor and App Designer updates in each release. graphics, java, javascript MATLAB Answers — New Questions
Integral2 MATLAB Function Error: Q = integral2Calc(fun,xmin,xmax,yminfun,ymaxfun,opstruct);
Hello,
I am facing an error with the "integral 2" function in MATLAB.
This is the integral I am trying to perform in MATLAB.
See screenshot attached:
Integration_MATLAB.png
Essentially, I made my integration variables "z" and "z_prime" symbolic variables in MATLAB.
This is so that I can use them throughout my analytical process of creating the equation "K".
The equation "K" is a function of "z" and "z_prime".
After I calculate K, I specify my integration boundaries for "z" and "z_prime". Then I "convert" to a "MATLAB Function"
For some reason, I keep getting the error: Q = integral2Calc(fun,xmin,xmax,yminfun,ymaxfun,opstruct);
I’ve tried looking up this error up for other cases on the MathWorks forum. I wasn’t able to find something that was relevant to my case.
I’ve tried using the "trapz" integration function in MATLAB but I wasn’t able to get anywhere with that either.
I have attached my code for reference
See code attached:
Using_Integral_2_Function.mHello,
I am facing an error with the "integral 2" function in MATLAB.
This is the integral I am trying to perform in MATLAB.
See screenshot attached:
Integration_MATLAB.png
Essentially, I made my integration variables "z" and "z_prime" symbolic variables in MATLAB.
This is so that I can use them throughout my analytical process of creating the equation "K".
The equation "K" is a function of "z" and "z_prime".
After I calculate K, I specify my integration boundaries for "z" and "z_prime". Then I "convert" to a "MATLAB Function"
For some reason, I keep getting the error: Q = integral2Calc(fun,xmin,xmax,yminfun,ymaxfun,opstruct);
I’ve tried looking up this error up for other cases on the MathWorks forum. I wasn’t able to find something that was relevant to my case.
I’ve tried using the "trapz" integration function in MATLAB but I wasn’t able to get anywhere with that either.
I have attached my code for reference
See code attached:
Using_Integral_2_Function.m Hello,
I am facing an error with the "integral 2" function in MATLAB.
This is the integral I am trying to perform in MATLAB.
See screenshot attached:
Integration_MATLAB.png
Essentially, I made my integration variables "z" and "z_prime" symbolic variables in MATLAB.
This is so that I can use them throughout my analytical process of creating the equation "K".
The equation "K" is a function of "z" and "z_prime".
After I calculate K, I specify my integration boundaries for "z" and "z_prime". Then I "convert" to a "MATLAB Function"
For some reason, I keep getting the error: Q = integral2Calc(fun,xmin,xmax,yminfun,ymaxfun,opstruct);
I’ve tried looking up this error up for other cases on the MathWorks forum. I wasn’t able to find something that was relevant to my case.
I’ve tried using the "trapz" integration function in MATLAB but I wasn’t able to get anywhere with that either.
I have attached my code for reference
See code attached:
Using_Integral_2_Function.m integral2, integral, integration, symbolic variables, symbolic toolbox, syms, integral2calc MATLAB Answers — New Questions
Disorganization of Application Components When Using Internal HTML Links Loaded in the HTML Component of MATLAB App Designer
Hello everyone,
I am experiencing an issue with the HTML file that I am loading into the HTML component of my application in MATLAB App Designer. When I click on the summary links or the return links that navigate to sections within the same file, the other components on the screen become disorganized.
Could someone assist me in resolving this issue? Please find the HTML code and images attached below. The images show the correct screen before clicking the link and how the application screen looks after the link is clicked.
Thank you in advance for your help!
Best regards,
Airton Gaio Junior
HTML Code
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="utf-8">
<title>Manual de Uso da Aplicação: Segmentação de Palmeiras</title>
<style>
body {
font-family: ‘Segoe UI’, Tahoma, Geneva, Verdana, sans-serif;
line-height: 1.6;
margin: 0;
padding: 0;
background-color: #f4f4f9;
overflow-x: hidden; /* Evita a rolagem horizontal */
}
header {
background-color: #4CAF50;
color: white;
padding: 1rem 0;
text-align: center;
}
.container {
width: 100%; /* Ajusta a largura ao container pai */
/*max-width: none; /* Remove o limite de largura */
max-width: 900px;
margin: 20px auto;
padding: 20px;
background: white;
border-radius: 8px;
box-shadow: 0 0 10px rgba(0,0,0,0.1);
}
h1, h2, h3 {
color: #333;
}
ul {
list-style-type: none;
padding: 0;
}
ul li {
padding: 5px 0;
}
ul li a {
text-decoration: none;
color: #4CAF50;
}
ul li a:hover {
text-decoration: underline;
}
.center {
text-align: center;
}
img {
max-width: 100%;
height: auto;
display: block;
margin: 20px auto;
}
p {
color: #555;
}
.btn-back {
display: inline-block;
margin: 20px 0;
padding: 10px 15px;
background-color: #4CAF50;
color: white;
text-decoration: none;
border-radius: 5px;
}
.btn-back:hover {
background-color: #45a049;
}
.important {
background-color: #ffcccc;
border-left: 6px solid #ff0000;
padding: 10px;
margin: 20px 0;
border-radius: 4px;
}
</style>
</head>
<body>
<header>
<h2>Manual de Uso da Aplicação: Segmentação de Palmeiras</h2>
</header>
<div class="container">
<h2 id="sumario">Sumário</h2>
<ul>
<li><a href="#introducao">Introdução</a></li>
<li><a href="#prerequisitos">Pré-requisitos</a></li>
<li><a href="#instalacao">Instalação no Windows</a></li>
<li><a href="#iniciar">Iniciar a Aplicação</a></li>
<li><a href="#carregar">Carregar Imagem</a></li>
<li><a href="#processar">Processar Segmentação</a></li>
<li><a href="#histograma">Gerar Histograma</a></li>
<li><a href="#exportar">Exportar Segmentação</a></li>
<li><a href="#resolucao-problemas">Resolução de Problemas</a></li>
<li><a href="#faq">Perguntas Frequentes (FAQ)</a></li>
<li><a href="#atualizacoes">Atualizações e Manutenção</a></li>
<li><a href="#seguranca-backup">Segurança e Backup</a></li>
<li><a href="#glossario">Glossário</a></li>
<li>Copyright e Contato do Suporte
<ul>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#licenca">Licença de Uso</a></li>
<li><a href="#consideracoes">Considerações Finais</a></li>
<li><a href="#autores">Autor(es)</a></li>
</ul>
</li>
</ul>
<h2 id="introducao">Introdução</h2>
<p>Esta aplicação MATLAB foi desenvolvida para segmentar espécies de palmeiras em imagens georreferenciadas. O objetivo principal
é fornecer uma ferramenta fácil de usar para pesquisadores e especialistas em meio ambiente para analisar imagens de VANT
(Veículo Aéreo Não Tripulado) e obter informações sobre a distribuição de diferentes espécies de palmeiras.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="prerequisitos">Pré-requisitos</h2>
<p>Para utilizar esta aplicação, é necessário:</p>
<ul>
<li>MATLAB R2021a ou superior</li>
<li>Toolbox de Processamento de Imagem do MATLAB</li>
<li>Bibliotecas adicionais: [Listar bibliotecas]</li>
</ul>
<p>Recomenda-se um computador com as seguintes especificações:</p>
<ul>
<li>Processador Intel Core i5 ou superior</li>
<li>8GB de RAM (16GB recomendado)</li>
<li>Placa gráfica dedicada com suporte a CUDA (opcional, mas recomendado para processamento mais rápido)</li>
</ul>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="instalacao">Instalação no Windows</h2>
<p>[Instruções de instalação aqui]</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="iniciar">Iniciar a Aplicação</h2>
<p>Abra a aplicação MATLAB e execute o script da aplicação para abrir a janela principal.</p>
<img src="img_doc/image002.png" alt="Tela Principal da aplicação">
<p class="center">Figura 1 – Tela Principal da aplicação.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="carregar">Carregar Imagem</h2>
<p>1. Clique no botão ‘Carregar Imagem…’.</p>
<p>2. Na janela de diálogo, selecione uma imagem no formato TIF.</p>
<p>3. Aguarde a imagem ser carregada e exibida na aba IMAGEM. As informações da imagem serão preenchidas no painel esquerdo.</p>
<img src="img_doc/image004.png" alt="Imagem carregada na aba “IMAGEM”">
<p class="center">Figura 2 – Imagem carregada na aba “IMAGEM”.</p>
<p>A rede neural convolucional deste projeto foi treinada com imagens capturadas por um VANT (Veículo Aéreo Não Tripulado) a uma
altura fixa de 120 metros acima do dossel, alcançando uma resolução espacial de 4,3 cm/<i>pixel</i>. As imagens foram coletadas
em uma área de floresta tropical com palmeiras. O resultado da aplicação é uma imagem classificada em sete classes, definidas
da seguinte maneira: 1) Açaí (<span style="background: yellow;">Euterpe oleracea</span>); 2) Cocão
(<i><span style="background: yellow;">Maximiliana maripa</span></i>); 3) Jaci
(<i><span style="background: yellow;">Attalea maripa</span></i>); 4) Paxiuba (<span
style="background: yellow;"><i>Socratea</i></span><i><span style="background: yellow;"> exorrhiza</span></i>);
5) Tucumã (<span style="background: yellow;"><i>Astrocaryum</i></span><i><span
style="background: yellow;"> aculeatum</span></i>); 6) Floresta sem Palmeiras
(<i>background</i>); e 7) Sem dados (<i>no-data</i>).</p>
<p>Para obter os melhores resultados, recomenda-se que a imagem de entrada tenha características semelhantes às descritas. No
entanto, a aplicação pode lidar com imagens que variem ligeiramente em resolução espacial, tipo de floresta e espécies presentes.</p>
<p>A aplicação aceita imagens de entrada com apenas três bandas. Se o usuário carregar uma imagem com mais de três bandas,
a aplicação considerará automaticamente apenas as três primeiras.</p>
<p class="important"><strong>IMPORTANTE:</strong> Recomendamos não utilizar imagens muito grandes, pois limitações
de hardware, como falta de memória RAM, espaço em disco, processadores mais lentos e a ausência de uma GPU dedicada,
podem impactar o desempenho da aplicação, resultando em tempos de processamento mais longos ou até mesmo no travamento do
sistema. Para áreas muito grandes, sugere-se dividir a imagem em partes menores para facilitar o processamento. A imagem de
entrada deve ter um tamanho mínimo de 2048<i>x</i>2048 <i>pixels</i>, conforme definido para o processamento em bloco.</p>
<p>A aba "IMAGEM" oferece diversos recursos ao usuário após o carregamento de uma imagem.</p>
<img src="img_doc/image006.png" alt="Menu de opções para a imagem carregada" style="width: 25%;">
<p class="center">Figura 3 – Menu de opções para a imagem carregada.</p>
<p>Ao passar o mouse sobre a imagem carregada, um menu de opções localizado no canto superior direito da imagem (Figura XX) será exibido. Este menu permite as seguintes ações: <img src="img_doc/image007.png" alt="Salvar uma captura da visualização atual da imagem" style="width: 4%; display: inline;"> Salvar uma captura da visualização atual da imagem; <img src="img_doc/image008.png" alt="Coletar informações da imagem" style="width: 4%; display: inline;"> Coletar informações da imagem; <img src="img_doc/image009.png" alt="Percorrer a imagem movendo-se com o cursor" style="width: 4%; display: inline;"> Percorrer a imagem movendo-se com o cursor; <img src="img_doc/image010.png" alt="Aumentar o Zoom" style="width: 4%; display: inline;"> Aumentar o Zoom; <img src="img_doc/image011.png" alt="Diminuir o Zoom" style="width: 4%; display: inline;"> Diminuir o Zoom; <img src="img_doc/image012.png" alt="Restaurar a visualização" style="width: 4%; display: inline;"> Restaurar a visualização.</p>
<p>Para utilizar uma dessas opções, basta clicar no ícone correspondente, que mudará de cor para azul, e aplicar o recurso desejado à
imagem.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="processar">Processar Segmentação</h2>
<p>1. Após carregar a imagem, clique no botão ‘Processar Segmentação’.</p>
<p>2. A segmentação será processada e os resultados serão exibidos na aba IMAGEM.</p>
<p>3. A sobreposição da imagem original com os resultados da segmentação será mostrada.</p>
<img src="img_doc/image014.png" alt="Demonstração do resultado de um processamento com o tipo de segmentação ‘Espécies’" style="width: 95%;">
<p class="center">Figura 4 – Demonstração do resultado de um processamento com o tipo de segmentação ‘Espécies’.</p>
<p>Neste momento, é importante aguardar até que o processamento termine. Se a imagem for muito grande, ela será dividida em
blocos de 2048<i>x</i>2048 <i>pixels</i>, e essa informação será exibida em uma pequena janela de progresso (Figura 5).</p>
<img src="img_doc/image016.png" alt="Janela de processamento em bloco" style="width: 95%;">
<p class="center">Figura 5 – Janela de processamento em bloco.</p>
<p>Após o processamento, uma janela de progresso (Figura 6) aparecerá enquanto o resultado é aplicado na aba "IMAGEM".</p>
<img src="img_doc/image018.png" alt="Janela de progresso" style="width: 95%;">
<p class="center">Figura 6 – Janela de progresso.</p>
<p>O resultado inicial apresentará uma segmentação simples, sem distinção entre as espécies de palmeiras, classificando a
imagem em apenas três classes: 1) Palmeiras; 2) Floresta sem Palmeiras (<i>background</i>); 3) Sem dados (no-data).</p>
<img src="img_doc/image020.png" alt="Demonstração do resultado de um processamento com o tipo de segmentação ‘Simples’" style="width: 95%;">
<p class="center">Figura 7 – Demonstração do resultado de um processamento com o tipo de segmentação ‘Simples’.</p>
<p>Após a conclusão do processamento e a exibição do resultado, a caixa de opções "Tipo de Segmentação" ficará habilitada.
Isso permitirá que o usuário alterne entre a segmentação simples e a segmentação por espécies, aplicando o novo resultado
imediatamente na aba "IMAGEM".</p>
<p class="important"><strong>IMPORTANTE:</strong> Embora a aplicação tenha uma rotina interna de limpeza de memória para permitir processamentos
repetidos, recomendamos fortemente que, para cada nova imagem a ser processada, a aplicação seja fechada e reaberta. Isso
garante a liberação completa da memória utilizada no processamento anterior, evitando possíveis erros futuros e assegurando
um desempenho otimizado.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="histograma">Gerar Histograma</h2>
<p>1. Com a segmentação processada, clique no botão ‘Histograma’.</p>
<p>2. O histograma da distribuição das espécies será exibido na aba HISTOGRAMA.</p>
<img src="img_doc/image022.png" alt="Demonstração de um histograma com o tipo de segmentação ‘Espécies’" style="width: 95%;">
<p class="center">Figura 8 – Demonstração de um histograma com o tipo de segmentação ‘Espécies’.</p>
<p>A função do histograma só estará disponível após o término do processamento. O histograma é apresentado na aba "HISTOGRAMA"
assim que o processamento é concluído. Uma janela de progresso indicará o fim do processamento e a aplicação mudará
automaticamente o foco para a aba "HISTOGRAMA".</p>
<img src="img_doc/image024.png" alt="Demonstração de um histograma com o tipo de segmentação ‘Simples’" style="width: 95%;">
<p class="center">Figura 9 – Demonstração de um histograma com o tipo de segmentação ‘Simples’.</p>
<p>Para alterar o histograma, utilize as opções de ‘Tipo de Segmentação’ na parte inferior esquerda da aplicação. O histograma
é configurado como um gráfico de barras, onde o eixo X representa as classes e o eixo Y indica o número de pixels
classificados. O usuário pode obter informações detalhadas sobre a frequência absoluta de pixels posicionando o mouse
sobre o gráfico.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="exportar">Exportar Segmentação</h2>
<p>1. Para exportar os resultados da segmentação, clique no botão ‘Exportar Segmentação’.</p>
<p>2. Os resultados serão salvos no diretório <b>‘export</b>’ no formato GeoTIFF.</p>
<p>Durante o processamento, uma janela de progresso aparecerá enquanto a exportação está sendo realizada. Ao término da
exportação, um alerta indicará o sucesso da operação (Figura 10).</p>
<img src="img_doc/image026.png" alt="Alerta do fim de exportação" style="width: 95%;">
<p class="center">Figura 10 – Alerta do fim de exportação.</p>
<p class="important"><strong>IMPORTANTE:</strong> O arquivo exportado será salvo no diretório denominado ‘<strong>export</strong>’, localizado no
mesmo local da instalação da aplicação. O nome do arquivo será o <strong>mesmo nome do arquivo fornecido como
entrada</strong> acrescentado de um sufixo ‘<strong>_Simples</strong>’ e/ou ‘<strong>_Especies</strong>’
seguido da extensão ‘<strong>TIF</strong>’. O resultado da exportação dependerá da seleção na caixa de opções "Tipo de
Segmentação".</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="resolucao-problemas">Resolução de Problemas</h2>
<p>Aqui estão algumas soluções para problemas comuns que você pode encontrar:</p>
<ul>
<li><strong>Erro na instalação:</strong> Verifique se todas as dependências estão instaladas e se a versão do MATLAB é compatível.</li>
<li><strong>Aplicação não inicia:</strong> Certifique-se de que o MATLAB está corretamente configurado no PATH do sistema.</li>
<li><strong>Imagem não carrega:</strong> Verifique o formato da imagem e se ela atende aos requisitos de tamanho.</li>
<li><strong>Processamento lento:</strong> Considere utilizar um computador com melhor capacidade de hardware ou dividir a imagem em partes menores.</li>
</ul>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="faq">Perguntas Frequentes (FAQ)</h2>
<p>Aqui estão algumas perguntas frequentes sobre a aplicação:</p>
<ul>
<li><strong>Posso usar imagens em formatos diferentes de TIF?</strong> Atualmente, a aplicação só suporta o formato TIF.</li>
<li><strong>Como faço para atualizar a aplicação?</strong> Verifique a seção de atualizações e manutenção para obter instruções.</li>
<li><strong>O que devo fazer se a aplicação travar?</strong> Reinicie a aplicação e tente novamente. Se o problema persistir, consulte a seção de resolução de problemas.</li>
</ul>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="atualizacoes">Atualizações e Manutenção</h2>
<p>Para atualizar a aplicação, siga os passos abaixo:</p>
<ul>
<li>Verifique o site oficial para novas versões.</li>
<li>Baixe a nova versão e substitua os arquivos antigos.</li>
<li>Reinstale as dependências, se necessário.</li>
</ul>
<p>Para manutenção preventiva:</p>
<ul>
<li>Verifique regularmente por atualizações.</li>
<li>Faça backups periódicos dos seus dados.</li>
</ul>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="seguranca-backup">Segurança e Backup</h2>
<p>Para garantir a segurança dos seus dados:</p>
<ul>
<li>Mantenha o software e dependências atualizados.</li>
<li>Faça backups regulares dos resultados da segmentação.</li>
<li>Armazene os backups em locais seguros e redundantes.</li>
</ul>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="glossario">Glossário</h2>
<p>Aqui estão alguns termos técnicos utilizados nesta documentação:</p>
<ul>
<li><strong>VANT:</strong> Veículo Aéreo Não Tripulado, também conhecido como drone.</li>
<li><strong>GeoTIFF:</strong> Formato de arquivo raster georreferenciado.</li>
<li><strong>Segmentação:</strong> Processo de dividir uma imagem em partes significativas.</li>
</ul>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="copyright">Copyright e Contato do Suporte</h2>
<h3 id="copyright">Copyright</h3>
<p>Todos os direitos autorais da aplicação são reservados ao(s) autor(es) e à Universidade do Estado de Santa Catarina
(UDESC-FAED). Qualquer redistribuição ou reprodução de parte ou de todo o conteúdo da aplicação em qualquer formato é
proibida, exceto nas seguintes condições:</p>
<p>1. <b>Uso Pessoal e Acadêmico</b>: A aplicação pode ser usada para fins pessoais e de pesquisa acadêmica, desde que seja
citada adequadamente a fonte e o(s) autor(es) originais da aplicação.</p>
<p>2. <strong>Proibição de Uso Comercial</strong>: É expressamente proibido o uso da aplicação para fins comerciais sem a
permissão explícita do(s) autor(es) e da UDESC-FAED.</p>
<p>3. <strong>Distribuição Limitada</strong>: A aplicação pode ser compartilhada com colegas de pesquisa, desde que este termo
de copyright e licença seja incluído na redistribuição e que não seja alterado ou removido.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h3 id="licenca">Licença de Uso</h3>
<p>Esta aplicação foi desenvolvida utilizando o Matlab Compiler sob a Licença da Universidade do Estado de Santa Catarina –
Faculdade de Educação (UDESC-FAED). A licença de uso está descrita da seguinte forma:</p>
<p>1. <b>Uso Restrito à Pesquisa</b>: A aplicação deve ser utilizada exclusivamente para fins de pesquisa e desenvolvimento
acadêmico, conforme os objetivos estabelecidos na pesquisa de doutorado.</p>
<p>2. <strong>Reprodução e Modificação</strong>: A modificação da aplicação é permitida apenas para fins de adaptação às
necessidades específicas da pesquisa de doutorado, desde que as modificações não violem os termos de uso do Matlab
Compiler.</p>
<p>3. <strong>Distribuição de Modificações</strong>: Quaisquer modificações na aplicação devem ser compartilhadas sob a mesma
licença, garantindo que as alterações sejam acessíveis à comunidade acadêmica e respeitem os direitos autorais originais.</p>
<p>4. <strong>Limitações de Responsabilidade</strong>: A UDESC-FAED e o(s) autor(es) não se responsabilizam por quaisquer
danos diretos ou indiretos que possam resultar do uso da aplicação, incluindo, mas não se limitando a, perda de dados,
interrupção de negócios ou lucros cessantes.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h3 id="consideracoes">Considerações Finais</h3>
<p>Ao utilizar esta aplicação, você concorda com os termos e condições aqui estabelecidos. O não cumprimento de qualquer parte
deste acordo pode resultar em ações legais apropriadas, de acordo com as leis de direitos autorais aplicáveis.</p>
<p>Para mais informações ou para obter permissão para usos além dos especificados nesta licença, entre em contato com a
Universidade do Estado de Santa Catarina – Faculdade de Educação (UDESC-FAED).</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h3 id="autores">Autor(es):</h3>
<p>Airton Gaio Jr.<br>
airton.gaio@edu.udesc.br<br>
</p>
<p>Rodrigo Pinheiro Ribas<br>
rodrigo.ribas@udesc.br
</p>
<p>Julho de 2025.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
</div>
</body>
</html>
Images: Correct Screen Before Clicking the Link
Images: Application Screen After Clicking the LinkHello everyone,
I am experiencing an issue with the HTML file that I am loading into the HTML component of my application in MATLAB App Designer. When I click on the summary links or the return links that navigate to sections within the same file, the other components on the screen become disorganized.
Could someone assist me in resolving this issue? Please find the HTML code and images attached below. The images show the correct screen before clicking the link and how the application screen looks after the link is clicked.
Thank you in advance for your help!
Best regards,
Airton Gaio Junior
HTML Code
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="utf-8">
<title>Manual de Uso da Aplicação: Segmentação de Palmeiras</title>
<style>
body {
font-family: ‘Segoe UI’, Tahoma, Geneva, Verdana, sans-serif;
line-height: 1.6;
margin: 0;
padding: 0;
background-color: #f4f4f9;
overflow-x: hidden; /* Evita a rolagem horizontal */
}
header {
background-color: #4CAF50;
color: white;
padding: 1rem 0;
text-align: center;
}
.container {
width: 100%; /* Ajusta a largura ao container pai */
/*max-width: none; /* Remove o limite de largura */
max-width: 900px;
margin: 20px auto;
padding: 20px;
background: white;
border-radius: 8px;
box-shadow: 0 0 10px rgba(0,0,0,0.1);
}
h1, h2, h3 {
color: #333;
}
ul {
list-style-type: none;
padding: 0;
}
ul li {
padding: 5px 0;
}
ul li a {
text-decoration: none;
color: #4CAF50;
}
ul li a:hover {
text-decoration: underline;
}
.center {
text-align: center;
}
img {
max-width: 100%;
height: auto;
display: block;
margin: 20px auto;
}
p {
color: #555;
}
.btn-back {
display: inline-block;
margin: 20px 0;
padding: 10px 15px;
background-color: #4CAF50;
color: white;
text-decoration: none;
border-radius: 5px;
}
.btn-back:hover {
background-color: #45a049;
}
.important {
background-color: #ffcccc;
border-left: 6px solid #ff0000;
padding: 10px;
margin: 20px 0;
border-radius: 4px;
}
</style>
</head>
<body>
<header>
<h2>Manual de Uso da Aplicação: Segmentação de Palmeiras</h2>
</header>
<div class="container">
<h2 id="sumario">Sumário</h2>
<ul>
<li><a href="#introducao">Introdução</a></li>
<li><a href="#prerequisitos">Pré-requisitos</a></li>
<li><a href="#instalacao">Instalação no Windows</a></li>
<li><a href="#iniciar">Iniciar a Aplicação</a></li>
<li><a href="#carregar">Carregar Imagem</a></li>
<li><a href="#processar">Processar Segmentação</a></li>
<li><a href="#histograma">Gerar Histograma</a></li>
<li><a href="#exportar">Exportar Segmentação</a></li>
<li><a href="#resolucao-problemas">Resolução de Problemas</a></li>
<li><a href="#faq">Perguntas Frequentes (FAQ)</a></li>
<li><a href="#atualizacoes">Atualizações e Manutenção</a></li>
<li><a href="#seguranca-backup">Segurança e Backup</a></li>
<li><a href="#glossario">Glossário</a></li>
<li>Copyright e Contato do Suporte
<ul>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#licenca">Licença de Uso</a></li>
<li><a href="#consideracoes">Considerações Finais</a></li>
<li><a href="#autores">Autor(es)</a></li>
</ul>
</li>
</ul>
<h2 id="introducao">Introdução</h2>
<p>Esta aplicação MATLAB foi desenvolvida para segmentar espécies de palmeiras em imagens georreferenciadas. O objetivo principal
é fornecer uma ferramenta fácil de usar para pesquisadores e especialistas em meio ambiente para analisar imagens de VANT
(Veículo Aéreo Não Tripulado) e obter informações sobre a distribuição de diferentes espécies de palmeiras.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="prerequisitos">Pré-requisitos</h2>
<p>Para utilizar esta aplicação, é necessário:</p>
<ul>
<li>MATLAB R2021a ou superior</li>
<li>Toolbox de Processamento de Imagem do MATLAB</li>
<li>Bibliotecas adicionais: [Listar bibliotecas]</li>
</ul>
<p>Recomenda-se um computador com as seguintes especificações:</p>
<ul>
<li>Processador Intel Core i5 ou superior</li>
<li>8GB de RAM (16GB recomendado)</li>
<li>Placa gráfica dedicada com suporte a CUDA (opcional, mas recomendado para processamento mais rápido)</li>
</ul>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="instalacao">Instalação no Windows</h2>
<p>[Instruções de instalação aqui]</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="iniciar">Iniciar a Aplicação</h2>
<p>Abra a aplicação MATLAB e execute o script da aplicação para abrir a janela principal.</p>
<img src="img_doc/image002.png" alt="Tela Principal da aplicação">
<p class="center">Figura 1 – Tela Principal da aplicação.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="carregar">Carregar Imagem</h2>
<p>1. Clique no botão ‘Carregar Imagem…’.</p>
<p>2. Na janela de diálogo, selecione uma imagem no formato TIF.</p>
<p>3. Aguarde a imagem ser carregada e exibida na aba IMAGEM. As informações da imagem serão preenchidas no painel esquerdo.</p>
<img src="img_doc/image004.png" alt="Imagem carregada na aba “IMAGEM”">
<p class="center">Figura 2 – Imagem carregada na aba “IMAGEM”.</p>
<p>A rede neural convolucional deste projeto foi treinada com imagens capturadas por um VANT (Veículo Aéreo Não Tripulado) a uma
altura fixa de 120 metros acima do dossel, alcançando uma resolução espacial de 4,3 cm/<i>pixel</i>. As imagens foram coletadas
em uma área de floresta tropical com palmeiras. O resultado da aplicação é uma imagem classificada em sete classes, definidas
da seguinte maneira: 1) Açaí (<span style="background: yellow;">Euterpe oleracea</span>); 2) Cocão
(<i><span style="background: yellow;">Maximiliana maripa</span></i>); 3) Jaci
(<i><span style="background: yellow;">Attalea maripa</span></i>); 4) Paxiuba (<span
style="background: yellow;"><i>Socratea</i></span><i><span style="background: yellow;"> exorrhiza</span></i>);
5) Tucumã (<span style="background: yellow;"><i>Astrocaryum</i></span><i><span
style="background: yellow;"> aculeatum</span></i>); 6) Floresta sem Palmeiras
(<i>background</i>); e 7) Sem dados (<i>no-data</i>).</p>
<p>Para obter os melhores resultados, recomenda-se que a imagem de entrada tenha características semelhantes às descritas. No
entanto, a aplicação pode lidar com imagens que variem ligeiramente em resolução espacial, tipo de floresta e espécies presentes.</p>
<p>A aplicação aceita imagens de entrada com apenas três bandas. Se o usuário carregar uma imagem com mais de três bandas,
a aplicação considerará automaticamente apenas as três primeiras.</p>
<p class="important"><strong>IMPORTANTE:</strong> Recomendamos não utilizar imagens muito grandes, pois limitações
de hardware, como falta de memória RAM, espaço em disco, processadores mais lentos e a ausência de uma GPU dedicada,
podem impactar o desempenho da aplicação, resultando em tempos de processamento mais longos ou até mesmo no travamento do
sistema. Para áreas muito grandes, sugere-se dividir a imagem em partes menores para facilitar o processamento. A imagem de
entrada deve ter um tamanho mínimo de 2048<i>x</i>2048 <i>pixels</i>, conforme definido para o processamento em bloco.</p>
<p>A aba "IMAGEM" oferece diversos recursos ao usuário após o carregamento de uma imagem.</p>
<img src="img_doc/image006.png" alt="Menu de opções para a imagem carregada" style="width: 25%;">
<p class="center">Figura 3 – Menu de opções para a imagem carregada.</p>
<p>Ao passar o mouse sobre a imagem carregada, um menu de opções localizado no canto superior direito da imagem (Figura XX) será exibido. Este menu permite as seguintes ações: <img src="img_doc/image007.png" alt="Salvar uma captura da visualização atual da imagem" style="width: 4%; display: inline;"> Salvar uma captura da visualização atual da imagem; <img src="img_doc/image008.png" alt="Coletar informações da imagem" style="width: 4%; display: inline;"> Coletar informações da imagem; <img src="img_doc/image009.png" alt="Percorrer a imagem movendo-se com o cursor" style="width: 4%; display: inline;"> Percorrer a imagem movendo-se com o cursor; <img src="img_doc/image010.png" alt="Aumentar o Zoom" style="width: 4%; display: inline;"> Aumentar o Zoom; <img src="img_doc/image011.png" alt="Diminuir o Zoom" style="width: 4%; display: inline;"> Diminuir o Zoom; <img src="img_doc/image012.png" alt="Restaurar a visualização" style="width: 4%; display: inline;"> Restaurar a visualização.</p>
<p>Para utilizar uma dessas opções, basta clicar no ícone correspondente, que mudará de cor para azul, e aplicar o recurso desejado à
imagem.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="processar">Processar Segmentação</h2>
<p>1. Após carregar a imagem, clique no botão ‘Processar Segmentação’.</p>
<p>2. A segmentação será processada e os resultados serão exibidos na aba IMAGEM.</p>
<p>3. A sobreposição da imagem original com os resultados da segmentação será mostrada.</p>
<img src="img_doc/image014.png" alt="Demonstração do resultado de um processamento com o tipo de segmentação ‘Espécies’" style="width: 95%;">
<p class="center">Figura 4 – Demonstração do resultado de um processamento com o tipo de segmentação ‘Espécies’.</p>
<p>Neste momento, é importante aguardar até que o processamento termine. Se a imagem for muito grande, ela será dividida em
blocos de 2048<i>x</i>2048 <i>pixels</i>, e essa informação será exibida em uma pequena janela de progresso (Figura 5).</p>
<img src="img_doc/image016.png" alt="Janela de processamento em bloco" style="width: 95%;">
<p class="center">Figura 5 – Janela de processamento em bloco.</p>
<p>Após o processamento, uma janela de progresso (Figura 6) aparecerá enquanto o resultado é aplicado na aba "IMAGEM".</p>
<img src="img_doc/image018.png" alt="Janela de progresso" style="width: 95%;">
<p class="center">Figura 6 – Janela de progresso.</p>
<p>O resultado inicial apresentará uma segmentação simples, sem distinção entre as espécies de palmeiras, classificando a
imagem em apenas três classes: 1) Palmeiras; 2) Floresta sem Palmeiras (<i>background</i>); 3) Sem dados (no-data).</p>
<img src="img_doc/image020.png" alt="Demonstração do resultado de um processamento com o tipo de segmentação ‘Simples’" style="width: 95%;">
<p class="center">Figura 7 – Demonstração do resultado de um processamento com o tipo de segmentação ‘Simples’.</p>
<p>Após a conclusão do processamento e a exibição do resultado, a caixa de opções "Tipo de Segmentação" ficará habilitada.
Isso permitirá que o usuário alterne entre a segmentação simples e a segmentação por espécies, aplicando o novo resultado
imediatamente na aba "IMAGEM".</p>
<p class="important"><strong>IMPORTANTE:</strong> Embora a aplicação tenha uma rotina interna de limpeza de memória para permitir processamentos
repetidos, recomendamos fortemente que, para cada nova imagem a ser processada, a aplicação seja fechada e reaberta. Isso
garante a liberação completa da memória utilizada no processamento anterior, evitando possíveis erros futuros e assegurando
um desempenho otimizado.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="histograma">Gerar Histograma</h2>
<p>1. Com a segmentação processada, clique no botão ‘Histograma’.</p>
<p>2. O histograma da distribuição das espécies será exibido na aba HISTOGRAMA.</p>
<img src="img_doc/image022.png" alt="Demonstração de um histograma com o tipo de segmentação ‘Espécies’" style="width: 95%;">
<p class="center">Figura 8 – Demonstração de um histograma com o tipo de segmentação ‘Espécies’.</p>
<p>A função do histograma só estará disponível após o término do processamento. O histograma é apresentado na aba "HISTOGRAMA"
assim que o processamento é concluído. Uma janela de progresso indicará o fim do processamento e a aplicação mudará
automaticamente o foco para a aba "HISTOGRAMA".</p>
<img src="img_doc/image024.png" alt="Demonstração de um histograma com o tipo de segmentação ‘Simples’" style="width: 95%;">
<p class="center">Figura 9 – Demonstração de um histograma com o tipo de segmentação ‘Simples’.</p>
<p>Para alterar o histograma, utilize as opções de ‘Tipo de Segmentação’ na parte inferior esquerda da aplicação. O histograma
é configurado como um gráfico de barras, onde o eixo X representa as classes e o eixo Y indica o número de pixels
classificados. O usuário pode obter informações detalhadas sobre a frequência absoluta de pixels posicionando o mouse
sobre o gráfico.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="exportar">Exportar Segmentação</h2>
<p>1. Para exportar os resultados da segmentação, clique no botão ‘Exportar Segmentação’.</p>
<p>2. Os resultados serão salvos no diretório <b>‘export</b>’ no formato GeoTIFF.</p>
<p>Durante o processamento, uma janela de progresso aparecerá enquanto a exportação está sendo realizada. Ao término da
exportação, um alerta indicará o sucesso da operação (Figura 10).</p>
<img src="img_doc/image026.png" alt="Alerta do fim de exportação" style="width: 95%;">
<p class="center">Figura 10 – Alerta do fim de exportação.</p>
<p class="important"><strong>IMPORTANTE:</strong> O arquivo exportado será salvo no diretório denominado ‘<strong>export</strong>’, localizado no
mesmo local da instalação da aplicação. O nome do arquivo será o <strong>mesmo nome do arquivo fornecido como
entrada</strong> acrescentado de um sufixo ‘<strong>_Simples</strong>’ e/ou ‘<strong>_Especies</strong>’
seguido da extensão ‘<strong>TIF</strong>’. O resultado da exportação dependerá da seleção na caixa de opções "Tipo de
Segmentação".</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="resolucao-problemas">Resolução de Problemas</h2>
<p>Aqui estão algumas soluções para problemas comuns que você pode encontrar:</p>
<ul>
<li><strong>Erro na instalação:</strong> Verifique se todas as dependências estão instaladas e se a versão do MATLAB é compatível.</li>
<li><strong>Aplicação não inicia:</strong> Certifique-se de que o MATLAB está corretamente configurado no PATH do sistema.</li>
<li><strong>Imagem não carrega:</strong> Verifique o formato da imagem e se ela atende aos requisitos de tamanho.</li>
<li><strong>Processamento lento:</strong> Considere utilizar um computador com melhor capacidade de hardware ou dividir a imagem em partes menores.</li>
</ul>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="faq">Perguntas Frequentes (FAQ)</h2>
<p>Aqui estão algumas perguntas frequentes sobre a aplicação:</p>
<ul>
<li><strong>Posso usar imagens em formatos diferentes de TIF?</strong> Atualmente, a aplicação só suporta o formato TIF.</li>
<li><strong>Como faço para atualizar a aplicação?</strong> Verifique a seção de atualizações e manutenção para obter instruções.</li>
<li><strong>O que devo fazer se a aplicação travar?</strong> Reinicie a aplicação e tente novamente. Se o problema persistir, consulte a seção de resolução de problemas.</li>
</ul>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="atualizacoes">Atualizações e Manutenção</h2>
<p>Para atualizar a aplicação, siga os passos abaixo:</p>
<ul>
<li>Verifique o site oficial para novas versões.</li>
<li>Baixe a nova versão e substitua os arquivos antigos.</li>
<li>Reinstale as dependências, se necessário.</li>
</ul>
<p>Para manutenção preventiva:</p>
<ul>
<li>Verifique regularmente por atualizações.</li>
<li>Faça backups periódicos dos seus dados.</li>
</ul>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="seguranca-backup">Segurança e Backup</h2>
<p>Para garantir a segurança dos seus dados:</p>
<ul>
<li>Mantenha o software e dependências atualizados.</li>
<li>Faça backups regulares dos resultados da segmentação.</li>
<li>Armazene os backups em locais seguros e redundantes.</li>
</ul>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="glossario">Glossário</h2>
<p>Aqui estão alguns termos técnicos utilizados nesta documentação:</p>
<ul>
<li><strong>VANT:</strong> Veículo Aéreo Não Tripulado, também conhecido como drone.</li>
<li><strong>GeoTIFF:</strong> Formato de arquivo raster georreferenciado.</li>
<li><strong>Segmentação:</strong> Processo de dividir uma imagem em partes significativas.</li>
</ul>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="copyright">Copyright e Contato do Suporte</h2>
<h3 id="copyright">Copyright</h3>
<p>Todos os direitos autorais da aplicação são reservados ao(s) autor(es) e à Universidade do Estado de Santa Catarina
(UDESC-FAED). Qualquer redistribuição ou reprodução de parte ou de todo o conteúdo da aplicação em qualquer formato é
proibida, exceto nas seguintes condições:</p>
<p>1. <b>Uso Pessoal e Acadêmico</b>: A aplicação pode ser usada para fins pessoais e de pesquisa acadêmica, desde que seja
citada adequadamente a fonte e o(s) autor(es) originais da aplicação.</p>
<p>2. <strong>Proibição de Uso Comercial</strong>: É expressamente proibido o uso da aplicação para fins comerciais sem a
permissão explícita do(s) autor(es) e da UDESC-FAED.</p>
<p>3. <strong>Distribuição Limitada</strong>: A aplicação pode ser compartilhada com colegas de pesquisa, desde que este termo
de copyright e licença seja incluído na redistribuição e que não seja alterado ou removido.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h3 id="licenca">Licença de Uso</h3>
<p>Esta aplicação foi desenvolvida utilizando o Matlab Compiler sob a Licença da Universidade do Estado de Santa Catarina –
Faculdade de Educação (UDESC-FAED). A licença de uso está descrita da seguinte forma:</p>
<p>1. <b>Uso Restrito à Pesquisa</b>: A aplicação deve ser utilizada exclusivamente para fins de pesquisa e desenvolvimento
acadêmico, conforme os objetivos estabelecidos na pesquisa de doutorado.</p>
<p>2. <strong>Reprodução e Modificação</strong>: A modificação da aplicação é permitida apenas para fins de adaptação às
necessidades específicas da pesquisa de doutorado, desde que as modificações não violem os termos de uso do Matlab
Compiler.</p>
<p>3. <strong>Distribuição de Modificações</strong>: Quaisquer modificações na aplicação devem ser compartilhadas sob a mesma
licença, garantindo que as alterações sejam acessíveis à comunidade acadêmica e respeitem os direitos autorais originais.</p>
<p>4. <strong>Limitações de Responsabilidade</strong>: A UDESC-FAED e o(s) autor(es) não se responsabilizam por quaisquer
danos diretos ou indiretos que possam resultar do uso da aplicação, incluindo, mas não se limitando a, perda de dados,
interrupção de negócios ou lucros cessantes.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h3 id="consideracoes">Considerações Finais</h3>
<p>Ao utilizar esta aplicação, você concorda com os termos e condições aqui estabelecidos. O não cumprimento de qualquer parte
deste acordo pode resultar em ações legais apropriadas, de acordo com as leis de direitos autorais aplicáveis.</p>
<p>Para mais informações ou para obter permissão para usos além dos especificados nesta licença, entre em contato com a
Universidade do Estado de Santa Catarina – Faculdade de Educação (UDESC-FAED).</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h3 id="autores">Autor(es):</h3>
<p>Airton Gaio Jr.<br>
airton.gaio@edu.udesc.br<br>
</p>
<p>Rodrigo Pinheiro Ribas<br>
rodrigo.ribas@udesc.br
</p>
<p>Julho de 2025.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
</div>
</body>
</html>
Images: Correct Screen Before Clicking the Link
Images: Application Screen After Clicking the Link Hello everyone,
I am experiencing an issue with the HTML file that I am loading into the HTML component of my application in MATLAB App Designer. When I click on the summary links or the return links that navigate to sections within the same file, the other components on the screen become disorganized.
Could someone assist me in resolving this issue? Please find the HTML code and images attached below. The images show the correct screen before clicking the link and how the application screen looks after the link is clicked.
Thank you in advance for your help!
Best regards,
Airton Gaio Junior
HTML Code
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="utf-8">
<title>Manual de Uso da Aplicação: Segmentação de Palmeiras</title>
<style>
body {
font-family: ‘Segoe UI’, Tahoma, Geneva, Verdana, sans-serif;
line-height: 1.6;
margin: 0;
padding: 0;
background-color: #f4f4f9;
overflow-x: hidden; /* Evita a rolagem horizontal */
}
header {
background-color: #4CAF50;
color: white;
padding: 1rem 0;
text-align: center;
}
.container {
width: 100%; /* Ajusta a largura ao container pai */
/*max-width: none; /* Remove o limite de largura */
max-width: 900px;
margin: 20px auto;
padding: 20px;
background: white;
border-radius: 8px;
box-shadow: 0 0 10px rgba(0,0,0,0.1);
}
h1, h2, h3 {
color: #333;
}
ul {
list-style-type: none;
padding: 0;
}
ul li {
padding: 5px 0;
}
ul li a {
text-decoration: none;
color: #4CAF50;
}
ul li a:hover {
text-decoration: underline;
}
.center {
text-align: center;
}
img {
max-width: 100%;
height: auto;
display: block;
margin: 20px auto;
}
p {
color: #555;
}
.btn-back {
display: inline-block;
margin: 20px 0;
padding: 10px 15px;
background-color: #4CAF50;
color: white;
text-decoration: none;
border-radius: 5px;
}
.btn-back:hover {
background-color: #45a049;
}
.important {
background-color: #ffcccc;
border-left: 6px solid #ff0000;
padding: 10px;
margin: 20px 0;
border-radius: 4px;
}
</style>
</head>
<body>
<header>
<h2>Manual de Uso da Aplicação: Segmentação de Palmeiras</h2>
</header>
<div class="container">
<h2 id="sumario">Sumário</h2>
<ul>
<li><a href="#introducao">Introdução</a></li>
<li><a href="#prerequisitos">Pré-requisitos</a></li>
<li><a href="#instalacao">Instalação no Windows</a></li>
<li><a href="#iniciar">Iniciar a Aplicação</a></li>
<li><a href="#carregar">Carregar Imagem</a></li>
<li><a href="#processar">Processar Segmentação</a></li>
<li><a href="#histograma">Gerar Histograma</a></li>
<li><a href="#exportar">Exportar Segmentação</a></li>
<li><a href="#resolucao-problemas">Resolução de Problemas</a></li>
<li><a href="#faq">Perguntas Frequentes (FAQ)</a></li>
<li><a href="#atualizacoes">Atualizações e Manutenção</a></li>
<li><a href="#seguranca-backup">Segurança e Backup</a></li>
<li><a href="#glossario">Glossário</a></li>
<li>Copyright e Contato do Suporte
<ul>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#licenca">Licença de Uso</a></li>
<li><a href="#consideracoes">Considerações Finais</a></li>
<li><a href="#autores">Autor(es)</a></li>
</ul>
</li>
</ul>
<h2 id="introducao">Introdução</h2>
<p>Esta aplicação MATLAB foi desenvolvida para segmentar espécies de palmeiras em imagens georreferenciadas. O objetivo principal
é fornecer uma ferramenta fácil de usar para pesquisadores e especialistas em meio ambiente para analisar imagens de VANT
(Veículo Aéreo Não Tripulado) e obter informações sobre a distribuição de diferentes espécies de palmeiras.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="prerequisitos">Pré-requisitos</h2>
<p>Para utilizar esta aplicação, é necessário:</p>
<ul>
<li>MATLAB R2021a ou superior</li>
<li>Toolbox de Processamento de Imagem do MATLAB</li>
<li>Bibliotecas adicionais: [Listar bibliotecas]</li>
</ul>
<p>Recomenda-se um computador com as seguintes especificações:</p>
<ul>
<li>Processador Intel Core i5 ou superior</li>
<li>8GB de RAM (16GB recomendado)</li>
<li>Placa gráfica dedicada com suporte a CUDA (opcional, mas recomendado para processamento mais rápido)</li>
</ul>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="instalacao">Instalação no Windows</h2>
<p>[Instruções de instalação aqui]</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="iniciar">Iniciar a Aplicação</h2>
<p>Abra a aplicação MATLAB e execute o script da aplicação para abrir a janela principal.</p>
<img src="img_doc/image002.png" alt="Tela Principal da aplicação">
<p class="center">Figura 1 – Tela Principal da aplicação.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="carregar">Carregar Imagem</h2>
<p>1. Clique no botão ‘Carregar Imagem…’.</p>
<p>2. Na janela de diálogo, selecione uma imagem no formato TIF.</p>
<p>3. Aguarde a imagem ser carregada e exibida na aba IMAGEM. As informações da imagem serão preenchidas no painel esquerdo.</p>
<img src="img_doc/image004.png" alt="Imagem carregada na aba “IMAGEM”">
<p class="center">Figura 2 – Imagem carregada na aba “IMAGEM”.</p>
<p>A rede neural convolucional deste projeto foi treinada com imagens capturadas por um VANT (Veículo Aéreo Não Tripulado) a uma
altura fixa de 120 metros acima do dossel, alcançando uma resolução espacial de 4,3 cm/<i>pixel</i>. As imagens foram coletadas
em uma área de floresta tropical com palmeiras. O resultado da aplicação é uma imagem classificada em sete classes, definidas
da seguinte maneira: 1) Açaí (<span style="background: yellow;">Euterpe oleracea</span>); 2) Cocão
(<i><span style="background: yellow;">Maximiliana maripa</span></i>); 3) Jaci
(<i><span style="background: yellow;">Attalea maripa</span></i>); 4) Paxiuba (<span
style="background: yellow;"><i>Socratea</i></span><i><span style="background: yellow;"> exorrhiza</span></i>);
5) Tucumã (<span style="background: yellow;"><i>Astrocaryum</i></span><i><span
style="background: yellow;"> aculeatum</span></i>); 6) Floresta sem Palmeiras
(<i>background</i>); e 7) Sem dados (<i>no-data</i>).</p>
<p>Para obter os melhores resultados, recomenda-se que a imagem de entrada tenha características semelhantes às descritas. No
entanto, a aplicação pode lidar com imagens que variem ligeiramente em resolução espacial, tipo de floresta e espécies presentes.</p>
<p>A aplicação aceita imagens de entrada com apenas três bandas. Se o usuário carregar uma imagem com mais de três bandas,
a aplicação considerará automaticamente apenas as três primeiras.</p>
<p class="important"><strong>IMPORTANTE:</strong> Recomendamos não utilizar imagens muito grandes, pois limitações
de hardware, como falta de memória RAM, espaço em disco, processadores mais lentos e a ausência de uma GPU dedicada,
podem impactar o desempenho da aplicação, resultando em tempos de processamento mais longos ou até mesmo no travamento do
sistema. Para áreas muito grandes, sugere-se dividir a imagem em partes menores para facilitar o processamento. A imagem de
entrada deve ter um tamanho mínimo de 2048<i>x</i>2048 <i>pixels</i>, conforme definido para o processamento em bloco.</p>
<p>A aba "IMAGEM" oferece diversos recursos ao usuário após o carregamento de uma imagem.</p>
<img src="img_doc/image006.png" alt="Menu de opções para a imagem carregada" style="width: 25%;">
<p class="center">Figura 3 – Menu de opções para a imagem carregada.</p>
<p>Ao passar o mouse sobre a imagem carregada, um menu de opções localizado no canto superior direito da imagem (Figura XX) será exibido. Este menu permite as seguintes ações: <img src="img_doc/image007.png" alt="Salvar uma captura da visualização atual da imagem" style="width: 4%; display: inline;"> Salvar uma captura da visualização atual da imagem; <img src="img_doc/image008.png" alt="Coletar informações da imagem" style="width: 4%; display: inline;"> Coletar informações da imagem; <img src="img_doc/image009.png" alt="Percorrer a imagem movendo-se com o cursor" style="width: 4%; display: inline;"> Percorrer a imagem movendo-se com o cursor; <img src="img_doc/image010.png" alt="Aumentar o Zoom" style="width: 4%; display: inline;"> Aumentar o Zoom; <img src="img_doc/image011.png" alt="Diminuir o Zoom" style="width: 4%; display: inline;"> Diminuir o Zoom; <img src="img_doc/image012.png" alt="Restaurar a visualização" style="width: 4%; display: inline;"> Restaurar a visualização.</p>
<p>Para utilizar uma dessas opções, basta clicar no ícone correspondente, que mudará de cor para azul, e aplicar o recurso desejado à
imagem.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="processar">Processar Segmentação</h2>
<p>1. Após carregar a imagem, clique no botão ‘Processar Segmentação’.</p>
<p>2. A segmentação será processada e os resultados serão exibidos na aba IMAGEM.</p>
<p>3. A sobreposição da imagem original com os resultados da segmentação será mostrada.</p>
<img src="img_doc/image014.png" alt="Demonstração do resultado de um processamento com o tipo de segmentação ‘Espécies’" style="width: 95%;">
<p class="center">Figura 4 – Demonstração do resultado de um processamento com o tipo de segmentação ‘Espécies’.</p>
<p>Neste momento, é importante aguardar até que o processamento termine. Se a imagem for muito grande, ela será dividida em
blocos de 2048<i>x</i>2048 <i>pixels</i>, e essa informação será exibida em uma pequena janela de progresso (Figura 5).</p>
<img src="img_doc/image016.png" alt="Janela de processamento em bloco" style="width: 95%;">
<p class="center">Figura 5 – Janela de processamento em bloco.</p>
<p>Após o processamento, uma janela de progresso (Figura 6) aparecerá enquanto o resultado é aplicado na aba "IMAGEM".</p>
<img src="img_doc/image018.png" alt="Janela de progresso" style="width: 95%;">
<p class="center">Figura 6 – Janela de progresso.</p>
<p>O resultado inicial apresentará uma segmentação simples, sem distinção entre as espécies de palmeiras, classificando a
imagem em apenas três classes: 1) Palmeiras; 2) Floresta sem Palmeiras (<i>background</i>); 3) Sem dados (no-data).</p>
<img src="img_doc/image020.png" alt="Demonstração do resultado de um processamento com o tipo de segmentação ‘Simples’" style="width: 95%;">
<p class="center">Figura 7 – Demonstração do resultado de um processamento com o tipo de segmentação ‘Simples’.</p>
<p>Após a conclusão do processamento e a exibição do resultado, a caixa de opções "Tipo de Segmentação" ficará habilitada.
Isso permitirá que o usuário alterne entre a segmentação simples e a segmentação por espécies, aplicando o novo resultado
imediatamente na aba "IMAGEM".</p>
<p class="important"><strong>IMPORTANTE:</strong> Embora a aplicação tenha uma rotina interna de limpeza de memória para permitir processamentos
repetidos, recomendamos fortemente que, para cada nova imagem a ser processada, a aplicação seja fechada e reaberta. Isso
garante a liberação completa da memória utilizada no processamento anterior, evitando possíveis erros futuros e assegurando
um desempenho otimizado.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="histograma">Gerar Histograma</h2>
<p>1. Com a segmentação processada, clique no botão ‘Histograma’.</p>
<p>2. O histograma da distribuição das espécies será exibido na aba HISTOGRAMA.</p>
<img src="img_doc/image022.png" alt="Demonstração de um histograma com o tipo de segmentação ‘Espécies’" style="width: 95%;">
<p class="center">Figura 8 – Demonstração de um histograma com o tipo de segmentação ‘Espécies’.</p>
<p>A função do histograma só estará disponível após o término do processamento. O histograma é apresentado na aba "HISTOGRAMA"
assim que o processamento é concluído. Uma janela de progresso indicará o fim do processamento e a aplicação mudará
automaticamente o foco para a aba "HISTOGRAMA".</p>
<img src="img_doc/image024.png" alt="Demonstração de um histograma com o tipo de segmentação ‘Simples’" style="width: 95%;">
<p class="center">Figura 9 – Demonstração de um histograma com o tipo de segmentação ‘Simples’.</p>
<p>Para alterar o histograma, utilize as opções de ‘Tipo de Segmentação’ na parte inferior esquerda da aplicação. O histograma
é configurado como um gráfico de barras, onde o eixo X representa as classes e o eixo Y indica o número de pixels
classificados. O usuário pode obter informações detalhadas sobre a frequência absoluta de pixels posicionando o mouse
sobre o gráfico.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="exportar">Exportar Segmentação</h2>
<p>1. Para exportar os resultados da segmentação, clique no botão ‘Exportar Segmentação’.</p>
<p>2. Os resultados serão salvos no diretório <b>‘export</b>’ no formato GeoTIFF.</p>
<p>Durante o processamento, uma janela de progresso aparecerá enquanto a exportação está sendo realizada. Ao término da
exportação, um alerta indicará o sucesso da operação (Figura 10).</p>
<img src="img_doc/image026.png" alt="Alerta do fim de exportação" style="width: 95%;">
<p class="center">Figura 10 – Alerta do fim de exportação.</p>
<p class="important"><strong>IMPORTANTE:</strong> O arquivo exportado será salvo no diretório denominado ‘<strong>export</strong>’, localizado no
mesmo local da instalação da aplicação. O nome do arquivo será o <strong>mesmo nome do arquivo fornecido como
entrada</strong> acrescentado de um sufixo ‘<strong>_Simples</strong>’ e/ou ‘<strong>_Especies</strong>’
seguido da extensão ‘<strong>TIF</strong>’. O resultado da exportação dependerá da seleção na caixa de opções "Tipo de
Segmentação".</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="resolucao-problemas">Resolução de Problemas</h2>
<p>Aqui estão algumas soluções para problemas comuns que você pode encontrar:</p>
<ul>
<li><strong>Erro na instalação:</strong> Verifique se todas as dependências estão instaladas e se a versão do MATLAB é compatível.</li>
<li><strong>Aplicação não inicia:</strong> Certifique-se de que o MATLAB está corretamente configurado no PATH do sistema.</li>
<li><strong>Imagem não carrega:</strong> Verifique o formato da imagem e se ela atende aos requisitos de tamanho.</li>
<li><strong>Processamento lento:</strong> Considere utilizar um computador com melhor capacidade de hardware ou dividir a imagem em partes menores.</li>
</ul>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="faq">Perguntas Frequentes (FAQ)</h2>
<p>Aqui estão algumas perguntas frequentes sobre a aplicação:</p>
<ul>
<li><strong>Posso usar imagens em formatos diferentes de TIF?</strong> Atualmente, a aplicação só suporta o formato TIF.</li>
<li><strong>Como faço para atualizar a aplicação?</strong> Verifique a seção de atualizações e manutenção para obter instruções.</li>
<li><strong>O que devo fazer se a aplicação travar?</strong> Reinicie a aplicação e tente novamente. Se o problema persistir, consulte a seção de resolução de problemas.</li>
</ul>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="atualizacoes">Atualizações e Manutenção</h2>
<p>Para atualizar a aplicação, siga os passos abaixo:</p>
<ul>
<li>Verifique o site oficial para novas versões.</li>
<li>Baixe a nova versão e substitua os arquivos antigos.</li>
<li>Reinstale as dependências, se necessário.</li>
</ul>
<p>Para manutenção preventiva:</p>
<ul>
<li>Verifique regularmente por atualizações.</li>
<li>Faça backups periódicos dos seus dados.</li>
</ul>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="seguranca-backup">Segurança e Backup</h2>
<p>Para garantir a segurança dos seus dados:</p>
<ul>
<li>Mantenha o software e dependências atualizados.</li>
<li>Faça backups regulares dos resultados da segmentação.</li>
<li>Armazene os backups em locais seguros e redundantes.</li>
</ul>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="glossario">Glossário</h2>
<p>Aqui estão alguns termos técnicos utilizados nesta documentação:</p>
<ul>
<li><strong>VANT:</strong> Veículo Aéreo Não Tripulado, também conhecido como drone.</li>
<li><strong>GeoTIFF:</strong> Formato de arquivo raster georreferenciado.</li>
<li><strong>Segmentação:</strong> Processo de dividir uma imagem em partes significativas.</li>
</ul>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="copyright">Copyright e Contato do Suporte</h2>
<h3 id="copyright">Copyright</h3>
<p>Todos os direitos autorais da aplicação são reservados ao(s) autor(es) e à Universidade do Estado de Santa Catarina
(UDESC-FAED). Qualquer redistribuição ou reprodução de parte ou de todo o conteúdo da aplicação em qualquer formato é
proibida, exceto nas seguintes condições:</p>
<p>1. <b>Uso Pessoal e Acadêmico</b>: A aplicação pode ser usada para fins pessoais e de pesquisa acadêmica, desde que seja
citada adequadamente a fonte e o(s) autor(es) originais da aplicação.</p>
<p>2. <strong>Proibição de Uso Comercial</strong>: É expressamente proibido o uso da aplicação para fins comerciais sem a
permissão explícita do(s) autor(es) e da UDESC-FAED.</p>
<p>3. <strong>Distribuição Limitada</strong>: A aplicação pode ser compartilhada com colegas de pesquisa, desde que este termo
de copyright e licença seja incluído na redistribuição e que não seja alterado ou removido.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h3 id="licenca">Licença de Uso</h3>
<p>Esta aplicação foi desenvolvida utilizando o Matlab Compiler sob a Licença da Universidade do Estado de Santa Catarina –
Faculdade de Educação (UDESC-FAED). A licença de uso está descrita da seguinte forma:</p>
<p>1. <b>Uso Restrito à Pesquisa</b>: A aplicação deve ser utilizada exclusivamente para fins de pesquisa e desenvolvimento
acadêmico, conforme os objetivos estabelecidos na pesquisa de doutorado.</p>
<p>2. <strong>Reprodução e Modificação</strong>: A modificação da aplicação é permitida apenas para fins de adaptação às
necessidades específicas da pesquisa de doutorado, desde que as modificações não violem os termos de uso do Matlab
Compiler.</p>
<p>3. <strong>Distribuição de Modificações</strong>: Quaisquer modificações na aplicação devem ser compartilhadas sob a mesma
licença, garantindo que as alterações sejam acessíveis à comunidade acadêmica e respeitem os direitos autorais originais.</p>
<p>4. <strong>Limitações de Responsabilidade</strong>: A UDESC-FAED e o(s) autor(es) não se responsabilizam por quaisquer
danos diretos ou indiretos que possam resultar do uso da aplicação, incluindo, mas não se limitando a, perda de dados,
interrupção de negócios ou lucros cessantes.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h3 id="consideracoes">Considerações Finais</h3>
<p>Ao utilizar esta aplicação, você concorda com os termos e condições aqui estabelecidos. O não cumprimento de qualquer parte
deste acordo pode resultar em ações legais apropriadas, de acordo com as leis de direitos autorais aplicáveis.</p>
<p>Para mais informações ou para obter permissão para usos além dos especificados nesta licença, entre em contato com a
Universidade do Estado de Santa Catarina – Faculdade de Educação (UDESC-FAED).</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h3 id="autores">Autor(es):</h3>
<p>Airton Gaio Jr.<br>
airton.gaio@edu.udesc.br<br>
</p>
<p>Rodrigo Pinheiro Ribas<br>
rodrigo.ribas@udesc.br
</p>
<p>Julho de 2025.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
</div>
</body>
</html>
Images: Correct Screen Before Clicking the Link
Images: Application Screen After Clicking the Link appdesigner, matlab, link, html, components, disorganization MATLAB Answers — New Questions
How to format cell font size, font color, and alignment in Excel from Matlab GUI program
Dear Matlab users,
I wrote these lines to export some data from my Matlab GUI to an Excel sheet. But, I need to do the following:
control the font size and color.
control the cell alignment.
I’ve read a lot of generous explanations that discuss a lot of issues, but could not find an answer to what I simply need.
Here is the code. Would you tell me what to add and where exactly?
header={‘Radar Set’, ‘Antenna Height’ ‘Tilting Angle’, ‘Target Type’, ‘Long’, ‘Lat’, ‘Elevation’, ‘Max. Range’, ‘Area’, ‘Date’, ‘Time’};
xlswrite(‘SavedData.xlsx’,header);
Data = {radar_set, get(handles.ant_height, ‘String’), get(handles.tilt_ang, ‘String’), target, get(handles.long,’string’), get(handles.lat,’string’), get(handles.alt,’string’), get(handles.maxrange,’string’), get(handles.area,’string’), datestr(clock, ‘dd/mm/YYYY’), datestr(clock, ‘HH:MM:SS’)};
[number, strings, row] = xlsread(‘SavedData.xlsx’);
lastRow = size(row,1);
nextRow = lastRow+1;
cellReference = sprintf(‘A%d’, nextRow);
xlswrite(‘SavedData.xlsx’, Data, ‘Sheet1’, cellReference);Dear Matlab users,
I wrote these lines to export some data from my Matlab GUI to an Excel sheet. But, I need to do the following:
control the font size and color.
control the cell alignment.
I’ve read a lot of generous explanations that discuss a lot of issues, but could not find an answer to what I simply need.
Here is the code. Would you tell me what to add and where exactly?
header={‘Radar Set’, ‘Antenna Height’ ‘Tilting Angle’, ‘Target Type’, ‘Long’, ‘Lat’, ‘Elevation’, ‘Max. Range’, ‘Area’, ‘Date’, ‘Time’};
xlswrite(‘SavedData.xlsx’,header);
Data = {radar_set, get(handles.ant_height, ‘String’), get(handles.tilt_ang, ‘String’), target, get(handles.long,’string’), get(handles.lat,’string’), get(handles.alt,’string’), get(handles.maxrange,’string’), get(handles.area,’string’), datestr(clock, ‘dd/mm/YYYY’), datestr(clock, ‘HH:MM:SS’)};
[number, strings, row] = xlsread(‘SavedData.xlsx’);
lastRow = size(row,1);
nextRow = lastRow+1;
cellReference = sprintf(‘A%d’, nextRow);
xlswrite(‘SavedData.xlsx’, Data, ‘Sheet1’, cellReference); Dear Matlab users,
I wrote these lines to export some data from my Matlab GUI to an Excel sheet. But, I need to do the following:
control the font size and color.
control the cell alignment.
I’ve read a lot of generous explanations that discuss a lot of issues, but could not find an answer to what I simply need.
Here is the code. Would you tell me what to add and where exactly?
header={‘Radar Set’, ‘Antenna Height’ ‘Tilting Angle’, ‘Target Type’, ‘Long’, ‘Lat’, ‘Elevation’, ‘Max. Range’, ‘Area’, ‘Date’, ‘Time’};
xlswrite(‘SavedData.xlsx’,header);
Data = {radar_set, get(handles.ant_height, ‘String’), get(handles.tilt_ang, ‘String’), target, get(handles.long,’string’), get(handles.lat,’string’), get(handles.alt,’string’), get(handles.maxrange,’string’), get(handles.area,’string’), datestr(clock, ‘dd/mm/YYYY’), datestr(clock, ‘HH:MM:SS’)};
[number, strings, row] = xlsread(‘SavedData.xlsx’);
lastRow = size(row,1);
nextRow = lastRow+1;
cellReference = sprintf(‘A%d’, nextRow);
xlswrite(‘SavedData.xlsx’, Data, ‘Sheet1’, cellReference); gui, excel, xlswrite, cell format, activex MATLAB Answers — New Questions
Is It Okay to Add Semicolons After Every Expression?
Take, for example, this piece of code which adds semicolons even when there is no output to suppress:
clear;
clc;
x = 1:10;
y = (x+1).^2;
plot(1,y(1),"r*");
hold on;
for idx = 2:10
plot(idx,y(idx),"r*");
end
plot(x,y);
And this code which only includes semicolons when needed:
clear
clc
x = 1:10;
y = (x+1).^2;
plot(1,y(1),"r*")
hold on
for idx = 2:10
plot(idx,y(idx),"r*")
end
plot(x,y)
(These are just examples.) Is adding semicolons to every expression (the first example) wrong in any way?
It’s just that when not using the editor you are not told if there is output to suppress, so I thought it would just be easier to use semicolons everywhere instead of trying to remember or guess where they are needed. So is it syntactically/traditionally/etc wrong in any way?Take, for example, this piece of code which adds semicolons even when there is no output to suppress:
clear;
clc;
x = 1:10;
y = (x+1).^2;
plot(1,y(1),"r*");
hold on;
for idx = 2:10
plot(idx,y(idx),"r*");
end
plot(x,y);
And this code which only includes semicolons when needed:
clear
clc
x = 1:10;
y = (x+1).^2;
plot(1,y(1),"r*")
hold on
for idx = 2:10
plot(idx,y(idx),"r*")
end
plot(x,y)
(These are just examples.) Is adding semicolons to every expression (the first example) wrong in any way?
It’s just that when not using the editor you are not told if there is output to suppress, so I thought it would just be easier to use semicolons everywhere instead of trying to remember or guess where they are needed. So is it syntactically/traditionally/etc wrong in any way? Take, for example, this piece of code which adds semicolons even when there is no output to suppress:
clear;
clc;
x = 1:10;
y = (x+1).^2;
plot(1,y(1),"r*");
hold on;
for idx = 2:10
plot(idx,y(idx),"r*");
end
plot(x,y);
And this code which only includes semicolons when needed:
clear
clc
x = 1:10;
y = (x+1).^2;
plot(1,y(1),"r*")
hold on
for idx = 2:10
plot(idx,y(idx),"r*")
end
plot(x,y)
(These are just examples.) Is adding semicolons to every expression (the first example) wrong in any way?
It’s just that when not using the editor you are not told if there is output to suppress, so I thought it would just be easier to use semicolons everywhere instead of trying to remember or guess where they are needed. So is it syntactically/traditionally/etc wrong in any way? syntax, semicolons, text file MATLAB Answers — New Questions
Error compiling Simscape network for solar panel/PV Pannel
This is the error I get and I use Matlab 2018a .
Error compiling Simscape network for model main1.
Caused by:
[‘main1/solar panel/PV Pannel/Solar Cella’]: Failed to compute value for parameter, x.
No matching signature found for exp. exp takes one dimensionless argument.
Argument 1 = {6324.4554, ‘K*V/J’}
Voc = {21.8000, ‘V’}
vtm1 = {0.0034, ‘J/K’}
In elec.sources.solar_cell ()
In elec.sources.solar_cell ()This is the error I get and I use Matlab 2018a .
Error compiling Simscape network for model main1.
Caused by:
[‘main1/solar panel/PV Pannel/Solar Cella’]: Failed to compute value for parameter, x.
No matching signature found for exp. exp takes one dimensionless argument.
Argument 1 = {6324.4554, ‘K*V/J’}
Voc = {21.8000, ‘V’}
vtm1 = {0.0034, ‘J/K’}
In elec.sources.solar_cell ()
In elec.sources.solar_cell () This is the error I get and I use Matlab 2018a .
Error compiling Simscape network for model main1.
Caused by:
[‘main1/solar panel/PV Pannel/Solar Cella’]: Failed to compute value for parameter, x.
No matching signature found for exp. exp takes one dimensionless argument.
Argument 1 = {6324.4554, ‘K*V/J’}
Voc = {21.8000, ‘V’}
vtm1 = {0.0034, ‘J/K’}
In elec.sources.solar_cell ()
In elec.sources.solar_cell () simscape pv pannel MATLAB Answers — New Questions
Always Error is seen
It always tells me that Z is not matrixIt always tells me that Z is not matrix It always tells me that Z is not matrix matrix, surf MATLAB Answers — New Questions
i cant save my training data
i used matlabs AE for OFDM system but cant save the training datai used matlabs AE for OFDM system but cant save the training data i used matlabs AE for OFDM system but cant save the training data deep learning MATLAB Answers — New Questions
Vertically Concatenate Data in a Cell array
Hello there I have data from 10 trials stored in a cell array shown here in "Predictors" and I was wondering how I could vertically concatonate it into one large matrix? Thank you so much in advance!Hello there I have data from 10 trials stored in a cell array shown here in "Predictors" and I was wondering how I could vertically concatonate it into one large matrix? Thank you so much in advance! Hello there I have data from 10 trials stored in a cell array shown here in "Predictors" and I was wondering how I could vertically concatonate it into one large matrix? Thank you so much in advance! input, data formatting, matrix, cell arrays MATLAB Answers — New Questions
Dual problem and primal problem unbounded linear programming
Hello,
I need some help please to solve this problem I have . I have solved a max. problem , the primal problem , by using linprog.
After this , I have done the dual problem of the primal. After this proccess, I don’t get the result that I should get , because the values of F0 should be the same in both cases(if I am not wrong).
I am sending the illustrated problem and code below. I hope someone can give me a help.
thank you !
Max 300𝑥1 + 400𝑥2
𝑥1 + 𝑥2 ≤ 320
4𝑥1 + 5𝑥2 ≤ 510
2𝑥1 + 3𝑥2 ≤ 430
3𝑥1 + 𝑥2 ≤ 300
𝑥1,𝑥2 ≥ 0
The Dual Problem
Min 320𝑦1 + 510𝑦2 + 430𝑦3 + 300𝑦4
𝑦1 + 4𝑦2 + 2𝑦3 + 3𝑦4 ≥ 300
4𝑦1 + 5𝑦2 + 3𝑦3 + 𝑦4 ≥ 400
𝑦1,𝑦2,𝑦3,𝑦4 ≥ 0
Matlab Code:
%Primary Problem
%Ax<=b
%coefficients of A
A = [1 4; 4 5; 2 3; 3 1];
%coefficients of B
b = [320 510 430 300];
%coefficients of the objective function
f = [300 400];
%The maximation of the linear function using the matlab linear
%programming function
[x0,F0] = linprog(-f,A,b,[],[],[0 0])
% disp(‘x0 = ‘)
% disp(x0);
%——————————————————————
%Dual problem
%coefficients of AT
AT = [1 4 2 3;
4 5 3 1];
%coefficients of u
u = [300 400];
g = [320 510 430 300];
%setting a lower bounder
lb = zeros(1,4);
%setting an upper bounder
ub=[];
[u0,F0] = linprog(g,-AT,-u,[],[],lb,ub)
% disp(‘u0 = ‘);
% disp(u0);
%So,1st and 2nd constrains of the primary problem are active
%because u0 = [9.0909
% 72.7273
% 0
% 0]
%Solutions of Primary problem throug the dual problem
syms x1 x2
eqns = [x1 + x2 == 320, 4*x1 + 5*x2 == 510];
S = solve(eqns,[x1 x2]);
b = [S.x1 S.x2];
disp(‘Values of x ‘)
disp(b);
duality_gap = [x0(1)-u0(1); x0(2)-u0(2)]Hello,
I need some help please to solve this problem I have . I have solved a max. problem , the primal problem , by using linprog.
After this , I have done the dual problem of the primal. After this proccess, I don’t get the result that I should get , because the values of F0 should be the same in both cases(if I am not wrong).
I am sending the illustrated problem and code below. I hope someone can give me a help.
thank you !
Max 300𝑥1 + 400𝑥2
𝑥1 + 𝑥2 ≤ 320
4𝑥1 + 5𝑥2 ≤ 510
2𝑥1 + 3𝑥2 ≤ 430
3𝑥1 + 𝑥2 ≤ 300
𝑥1,𝑥2 ≥ 0
The Dual Problem
Min 320𝑦1 + 510𝑦2 + 430𝑦3 + 300𝑦4
𝑦1 + 4𝑦2 + 2𝑦3 + 3𝑦4 ≥ 300
4𝑦1 + 5𝑦2 + 3𝑦3 + 𝑦4 ≥ 400
𝑦1,𝑦2,𝑦3,𝑦4 ≥ 0
Matlab Code:
%Primary Problem
%Ax<=b
%coefficients of A
A = [1 4; 4 5; 2 3; 3 1];
%coefficients of B
b = [320 510 430 300];
%coefficients of the objective function
f = [300 400];
%The maximation of the linear function using the matlab linear
%programming function
[x0,F0] = linprog(-f,A,b,[],[],[0 0])
% disp(‘x0 = ‘)
% disp(x0);
%——————————————————————
%Dual problem
%coefficients of AT
AT = [1 4 2 3;
4 5 3 1];
%coefficients of u
u = [300 400];
g = [320 510 430 300];
%setting a lower bounder
lb = zeros(1,4);
%setting an upper bounder
ub=[];
[u0,F0] = linprog(g,-AT,-u,[],[],lb,ub)
% disp(‘u0 = ‘);
% disp(u0);
%So,1st and 2nd constrains of the primary problem are active
%because u0 = [9.0909
% 72.7273
% 0
% 0]
%Solutions of Primary problem throug the dual problem
syms x1 x2
eqns = [x1 + x2 == 320, 4*x1 + 5*x2 == 510];
S = solve(eqns,[x1 x2]);
b = [S.x1 S.x2];
disp(‘Values of x ‘)
disp(b);
duality_gap = [x0(1)-u0(1); x0(2)-u0(2)] Hello,
I need some help please to solve this problem I have . I have solved a max. problem , the primal problem , by using linprog.
After this , I have done the dual problem of the primal. After this proccess, I don’t get the result that I should get , because the values of F0 should be the same in both cases(if I am not wrong).
I am sending the illustrated problem and code below. I hope someone can give me a help.
thank you !
Max 300𝑥1 + 400𝑥2
𝑥1 + 𝑥2 ≤ 320
4𝑥1 + 5𝑥2 ≤ 510
2𝑥1 + 3𝑥2 ≤ 430
3𝑥1 + 𝑥2 ≤ 300
𝑥1,𝑥2 ≥ 0
The Dual Problem
Min 320𝑦1 + 510𝑦2 + 430𝑦3 + 300𝑦4
𝑦1 + 4𝑦2 + 2𝑦3 + 3𝑦4 ≥ 300
4𝑦1 + 5𝑦2 + 3𝑦3 + 𝑦4 ≥ 400
𝑦1,𝑦2,𝑦3,𝑦4 ≥ 0
Matlab Code:
%Primary Problem
%Ax<=b
%coefficients of A
A = [1 4; 4 5; 2 3; 3 1];
%coefficients of B
b = [320 510 430 300];
%coefficients of the objective function
f = [300 400];
%The maximation of the linear function using the matlab linear
%programming function
[x0,F0] = linprog(-f,A,b,[],[],[0 0])
% disp(‘x0 = ‘)
% disp(x0);
%——————————————————————
%Dual problem
%coefficients of AT
AT = [1 4 2 3;
4 5 3 1];
%coefficients of u
u = [300 400];
g = [320 510 430 300];
%setting a lower bounder
lb = zeros(1,4);
%setting an upper bounder
ub=[];
[u0,F0] = linprog(g,-AT,-u,[],[],lb,ub)
% disp(‘u0 = ‘);
% disp(u0);
%So,1st and 2nd constrains of the primary problem are active
%because u0 = [9.0909
% 72.7273
% 0
% 0]
%Solutions of Primary problem throug the dual problem
syms x1 x2
eqns = [x1 + x2 == 320, 4*x1 + 5*x2 == 510];
S = solve(eqns,[x1 x2]);
b = [S.x1 S.x2];
disp(‘Values of x ‘)
disp(b);
duality_gap = [x0(1)-u0(1); x0(2)-u0(2)] optimization, linprog MATLAB Answers — New Questions
Fuzzy Control for Speed Stepper Motor
I’m sorry I’m still a beginner and don’t really understand Matlab. I want to control the speed of the stepper motor in the concrete 3d printing extruder. I plan to use the speed of the stepper motor from x (1 motor), y (2 motor) and z (1 motor) 3d printing for inputs, then I use FLC mamdani in the slow, medium, and fast categories. the output is the speed of the stepper motor in the extruder. the question is is it correct in that way can i get to control the stepper motor? then what should I do first? thank you for your answerI’m sorry I’m still a beginner and don’t really understand Matlab. I want to control the speed of the stepper motor in the concrete 3d printing extruder. I plan to use the speed of the stepper motor from x (1 motor), y (2 motor) and z (1 motor) 3d printing for inputs, then I use FLC mamdani in the slow, medium, and fast categories. the output is the speed of the stepper motor in the extruder. the question is is it correct in that way can i get to control the stepper motor? then what should I do first? thank you for your answer I’m sorry I’m still a beginner and don’t really understand Matlab. I want to control the speed of the stepper motor in the concrete 3d printing extruder. I plan to use the speed of the stepper motor from x (1 motor), y (2 motor) and z (1 motor) 3d printing for inputs, then I use FLC mamdani in the slow, medium, and fast categories. the output is the speed of the stepper motor in the extruder. the question is is it correct in that way can i get to control the stepper motor? then what should I do first? thank you for your answer #fuzzy #steppermotor MATLAB Answers — New Questions
how to define global coastline shapefile (boundary line) for a pcolor plot of data having range from 0 to 360 instead of -180 to 180
Hello all,
I was juts doing some seasurface temperature plots which has the range longitude from 0 to 360, the sample plot and data set(a single year data file is shared since the entire data set is too large to share) is attached below.
I would like highlight the coastline for this plot, which i wasnt able to do.Hello all,
I was juts doing some seasurface temperature plots which has the range longitude from 0 to 360, the sample plot and data set(a single year data file is shared since the entire data set is too large to share) is attached below.
I would like highlight the coastline for this plot, which i wasnt able to do. Hello all,
I was juts doing some seasurface temperature plots which has the range longitude from 0 to 360, the sample plot and data set(a single year data file is shared since the entire data set is too large to share) is attached below.
I would like highlight the coastline for this plot, which i wasnt able to do. shapefile, geoshow, pcolor, coastline, sst MATLAB Answers — New Questions
Reduce the inputs for the chi2gof function (follow-up question of: Using chi2gof to test two distributions)
This is a follow-up question of Using chi2gof to test two distributions.
@Allie had the following inputs, i.e. the binned observational data (x), the binned model data (y), and the bin edges (bins):
x= [41 22 11 10 9 5 2 3 2];
y= [38.052 24.2655 15.4665 9.8595 6.2895 4.011 2.562 1.6275 2.8665];
bins=[0:9:81];
and asked how to use "chi2gof to test if two distributions come from a common distribution (null hypothesis) or if they do not come from a common distribution (alternative hypothesis)".
The accepted answer comes from @Jeff Miller:
bins=[0:9:81];
xvals = bins(1:end-1)+4.5; % Here are some fake data values that belong in each bin.
xcounts= [41 22 11 10 9 5 2 3 2]; % These are the counts of the data values in each bin.
y= [38.052 24.2655 15.4665 9.8595 6.2895 4.011 2.562 1.6275 2.8665];
[h,p,stat]=chi2gof(xvals,’Edges’,bins,’Expected’,y,’Frequency’,xcounts,’EMin’,1)
However, by re-doing all the calculations, i.e.
% inputs
alpha = 0.05;
x= [41 22 11 10 9 5 2 3 2]; % <– observed data
y= [38.052 24.2655 15.4665 9.8595 6.2895 4.011 2.562 1.6275 2.8665]; % <– expected data
% Chi-square goodness-of-fit test
chi2 = sum(((x-y).^2)./y); % <– chi-square value
df = length(x)-1; % <– degrees of freedom
p = chi2cdf(chi2,df,’upper’); % <– p-value calculated from the chi-square distribution with "df" degrees of freedom
if p>alpha % <– accept or reject the null hypothesis, based on the p-value
h = 0; % <– disp(‘we fail to reject the null hypothesis’)
else
h = 1; % <– disp(‘we reject the null hypothesis’)
end
table([chi2; df; p; h],’RowNames’,{‘chi-square’,’df’,’p-value’,’h’},’VariableNames’,{‘Stats’})
I have realized that "xvals" and the "bins" are not necessary for the Chi-square goodness-of-fit test.
Then, is it possible to still use the chi2gof function, but just employing "x" and "y" (and "alpha") as the only inputs?This is a follow-up question of Using chi2gof to test two distributions.
@Allie had the following inputs, i.e. the binned observational data (x), the binned model data (y), and the bin edges (bins):
x= [41 22 11 10 9 5 2 3 2];
y= [38.052 24.2655 15.4665 9.8595 6.2895 4.011 2.562 1.6275 2.8665];
bins=[0:9:81];
and asked how to use "chi2gof to test if two distributions come from a common distribution (null hypothesis) or if they do not come from a common distribution (alternative hypothesis)".
The accepted answer comes from @Jeff Miller:
bins=[0:9:81];
xvals = bins(1:end-1)+4.5; % Here are some fake data values that belong in each bin.
xcounts= [41 22 11 10 9 5 2 3 2]; % These are the counts of the data values in each bin.
y= [38.052 24.2655 15.4665 9.8595 6.2895 4.011 2.562 1.6275 2.8665];
[h,p,stat]=chi2gof(xvals,’Edges’,bins,’Expected’,y,’Frequency’,xcounts,’EMin’,1)
However, by re-doing all the calculations, i.e.
% inputs
alpha = 0.05;
x= [41 22 11 10 9 5 2 3 2]; % <– observed data
y= [38.052 24.2655 15.4665 9.8595 6.2895 4.011 2.562 1.6275 2.8665]; % <– expected data
% Chi-square goodness-of-fit test
chi2 = sum(((x-y).^2)./y); % <– chi-square value
df = length(x)-1; % <– degrees of freedom
p = chi2cdf(chi2,df,’upper’); % <– p-value calculated from the chi-square distribution with "df" degrees of freedom
if p>alpha % <– accept or reject the null hypothesis, based on the p-value
h = 0; % <– disp(‘we fail to reject the null hypothesis’)
else
h = 1; % <– disp(‘we reject the null hypothesis’)
end
table([chi2; df; p; h],’RowNames’,{‘chi-square’,’df’,’p-value’,’h’},’VariableNames’,{‘Stats’})
I have realized that "xvals" and the "bins" are not necessary for the Chi-square goodness-of-fit test.
Then, is it possible to still use the chi2gof function, but just employing "x" and "y" (and "alpha") as the only inputs? This is a follow-up question of Using chi2gof to test two distributions.
@Allie had the following inputs, i.e. the binned observational data (x), the binned model data (y), and the bin edges (bins):
x= [41 22 11 10 9 5 2 3 2];
y= [38.052 24.2655 15.4665 9.8595 6.2895 4.011 2.562 1.6275 2.8665];
bins=[0:9:81];
and asked how to use "chi2gof to test if two distributions come from a common distribution (null hypothesis) or if they do not come from a common distribution (alternative hypothesis)".
The accepted answer comes from @Jeff Miller:
bins=[0:9:81];
xvals = bins(1:end-1)+4.5; % Here are some fake data values that belong in each bin.
xcounts= [41 22 11 10 9 5 2 3 2]; % These are the counts of the data values in each bin.
y= [38.052 24.2655 15.4665 9.8595 6.2895 4.011 2.562 1.6275 2.8665];
[h,p,stat]=chi2gof(xvals,’Edges’,bins,’Expected’,y,’Frequency’,xcounts,’EMin’,1)
However, by re-doing all the calculations, i.e.
% inputs
alpha = 0.05;
x= [41 22 11 10 9 5 2 3 2]; % <– observed data
y= [38.052 24.2655 15.4665 9.8595 6.2895 4.011 2.562 1.6275 2.8665]; % <– expected data
% Chi-square goodness-of-fit test
chi2 = sum(((x-y).^2)./y); % <– chi-square value
df = length(x)-1; % <– degrees of freedom
p = chi2cdf(chi2,df,’upper’); % <– p-value calculated from the chi-square distribution with "df" degrees of freedom
if p>alpha % <– accept or reject the null hypothesis, based on the p-value
h = 0; % <– disp(‘we fail to reject the null hypothesis’)
else
h = 1; % <– disp(‘we reject the null hypothesis’)
end
table([chi2; df; p; h],’RowNames’,{‘chi-square’,’df’,’p-value’,’h’},’VariableNames’,{‘Stats’})
I have realized that "xvals" and the "bins" are not necessary for the Chi-square goodness-of-fit test.
Then, is it possible to still use the chi2gof function, but just employing "x" and "y" (and "alpha") as the only inputs? chi2gof, distributions, chi-square, chi-square test MATLAB Answers — New Questions
How to setup a multi-agent DDPG
Hi,
I am trying to simulate a number of agents that collaboratively doing mapping. I designed the actor critic networks, but I have a problem that how I can write a code for gridworld file inside my simulink. Is there any related example?Hi,
I am trying to simulate a number of agents that collaboratively doing mapping. I designed the actor critic networks, but I have a problem that how I can write a code for gridworld file inside my simulink. Is there any related example? Hi,
I am trying to simulate a number of agents that collaboratively doing mapping. I designed the actor critic networks, but I have a problem that how I can write a code for gridworld file inside my simulink. Is there any related example? ddpg MATLAB Answers — New Questions
Can you convert DatetimeRuler to DurationRuler?
I have a series of utilities that generate figures like:
fh = figure;
ax = axes(fh);
plot(ax, datetime("now")+minutes(1:5), 1:5, "–x");
Which use datetime objects for the XData (and therefore have a DatetimeRuler for the x-axis) because it makes it easier to find reference data in the future.
However, for presentations, I generally want plots that use a DurationRuler for the sake of clarity. Is there any way to update ax.XAxis (or maybe even all of the ax.Children entries) such that I could have figures that look like they were generated like this instead:
fh = figure;
ax = axes(fh);
plot(ax, minutes(1:5), 1:5, "–x");
I could update all the plotting utilities to optionally use Duration objects from some reference but this would effect several utilities and it would be more convenient to just pass an axis or figure handle to some function that could do the conversion after the figure exists.I have a series of utilities that generate figures like:
fh = figure;
ax = axes(fh);
plot(ax, datetime("now")+minutes(1:5), 1:5, "–x");
Which use datetime objects for the XData (and therefore have a DatetimeRuler for the x-axis) because it makes it easier to find reference data in the future.
However, for presentations, I generally want plots that use a DurationRuler for the sake of clarity. Is there any way to update ax.XAxis (or maybe even all of the ax.Children entries) such that I could have figures that look like they were generated like this instead:
fh = figure;
ax = axes(fh);
plot(ax, minutes(1:5), 1:5, "–x");
I could update all the plotting utilities to optionally use Duration objects from some reference but this would effect several utilities and it would be more convenient to just pass an axis or figure handle to some function that could do the conversion after the figure exists. I have a series of utilities that generate figures like:
fh = figure;
ax = axes(fh);
plot(ax, datetime("now")+minutes(1:5), 1:5, "–x");
Which use datetime objects for the XData (and therefore have a DatetimeRuler for the x-axis) because it makes it easier to find reference data in the future.
However, for presentations, I generally want plots that use a DurationRuler for the sake of clarity. Is there any way to update ax.XAxis (or maybe even all of the ax.Children entries) such that I could have figures that look like they were generated like this instead:
fh = figure;
ax = axes(fh);
plot(ax, minutes(1:5), 1:5, "–x");
I could update all the plotting utilities to optionally use Duration objects from some reference but this would effect several utilities and it would be more convenient to just pass an axis or figure handle to some function that could do the conversion after the figure exists. plotting, axes, datetime MATLAB Answers — New Questions
license function can’t list Computer Vision Toolbox™?
When I use license function to check if there is already a Computer Vision Toolbox™ in the MATLAB environment, I don’t know how to get what the function input parameter `feature` corresponds to the name of this toolbox? I have tried the following methods and they all return a status of 0, but I am sure that Computer Vision Toolbox is installed and working, how do I find out what the name of the `feature` corresponds to?
license("test","computer_vision_toolbox")
license("test","vision_toolbox")
license("checkout","computer_vision_toolbox")
——————————————————————————————————-
Another related question is: How can I check if a specific toolbox is installed in the current environment using MATLAB code?
As far as I know, the ver function can return all installed toolboxes status and then you can search for the name, but the official documentation no longer recommends using the ver function since R2023b. Instead, it suggests using the matlabRelease function, but this function only returns the version number and does not provide the installation status of the toolboxes.When I use license function to check if there is already a Computer Vision Toolbox™ in the MATLAB environment, I don’t know how to get what the function input parameter `feature` corresponds to the name of this toolbox? I have tried the following methods and they all return a status of 0, but I am sure that Computer Vision Toolbox is installed and working, how do I find out what the name of the `feature` corresponds to?
license("test","computer_vision_toolbox")
license("test","vision_toolbox")
license("checkout","computer_vision_toolbox")
——————————————————————————————————-
Another related question is: How can I check if a specific toolbox is installed in the current environment using MATLAB code?
As far as I know, the ver function can return all installed toolboxes status and then you can search for the name, but the official documentation no longer recommends using the ver function since R2023b. Instead, it suggests using the matlabRelease function, but this function only returns the version number and does not provide the installation status of the toolboxes. When I use license function to check if there is already a Computer Vision Toolbox™ in the MATLAB environment, I don’t know how to get what the function input parameter `feature` corresponds to the name of this toolbox? I have tried the following methods and they all return a status of 0, but I am sure that Computer Vision Toolbox is installed and working, how do I find out what the name of the `feature` corresponds to?
license("test","computer_vision_toolbox")
license("test","vision_toolbox")
license("checkout","computer_vision_toolbox")
——————————————————————————————————-
Another related question is: How can I check if a specific toolbox is installed in the current environment using MATLAB code?
As far as I know, the ver function can return all installed toolboxes status and then you can search for the name, but the official documentation no longer recommends using the ver function since R2023b. Instead, it suggests using the matlabRelease function, but this function only returns the version number and does not provide the installation status of the toolboxes. computer vision, installation MATLAB Answers — New Questions
Using OPC UA read and write blocks within a Simu,ink Model
I’m using OPC UA Read and Write blocks within a Simulink model. I want to create a simulation app (by selecting ‘Simulation App…’ from the ‘Save’ dropdown menu. However, the creation fails because the OPC UA classes do not support code generation.
Are there any plans to make them compileable? Alternatively, is there a workaround? I’ve tried to create bespoke read and write OPC UA blocks, but run into the same problem.
Thanks,I’m using OPC UA Read and Write blocks within a Simulink model. I want to create a simulation app (by selecting ‘Simulation App…’ from the ‘Save’ dropdown menu. However, the creation fails because the OPC UA classes do not support code generation.
Are there any plans to make them compileable? Alternatively, is there a workaround? I’ve tried to create bespoke read and write OPC UA blocks, but run into the same problem.
Thanks, I’m using OPC UA Read and Write blocks within a Simulink model. I want to create a simulation app (by selecting ‘Simulation App…’ from the ‘Save’ dropdown menu. However, the creation fails because the OPC UA classes do not support code generation.
Are there any plans to make them compileable? Alternatively, is there a workaround? I’ve tried to create bespoke read and write OPC UA blocks, but run into the same problem.
Thanks, opc ua, code generation MATLAB Answers — New Questions
I’m having trouble solving a system of nonlinear equations with the fmincon function.
I want to solve a system of equations containing two non-linear equations, one of which is Psh_newhv == Pse_newhv,the other is Qs_newhv==0, but solving it with the fmincon function doesn’t achieve the first constraint, how can I solve this problem?
% Given constants
V_s = 10*1e3/sqrt(3);
n_t = 25*sqrt(3);
V_r = 400/sqrt(3);
theta_r = pi/12;
Srate = 100*1e3/3;
Zbase = (V_r)^2/Srate;
X_r = 0.4*Zbase;
X_t = 400^2/(300*1e3)*4/100;
rho = 0:2*pi/72:2*pi;
V_se = 0.2*V_r;
V_se_newhv = 0.2*V_s;
Z_r = 1i * X_r;
% Initial guess
x0 = [0 0];
% Options for fmincon
options = optimoptions(‘fmincon’, ‘Algorithm’, ‘interior-point’, ‘Display’, ‘off’,’ConstraintTolerance’,1e-6);
% Constraints
lb = [];
ub = [];
% Solve for each rho
for m = 1:73
% Define the nonlinear constraint function
fun_newhv = @(x_newhv) myfun_newhv(x_newhv, rho(m));
% Use fmincon to solve the problem
[x_newhv, fval_newhv, exitflag_newhv(m), output_newhv] = fmincon(@(x_newhv) 0, x0, [], [], [], [], lb, ub, fun_newhv, options);
% Extract solutions
gamma_newhv(m) = x_newhv(1);
I_sh_newhv(m) = x_newhv(2);
I_r_newhv(m)=1/(Z_r+j*X_t)*(sqrt(3)*(V_s+V_se_newhv*exp(j*rho(m)))*exp(j*pi/6)/n_t-V_r*exp(j*theta_r));
V_tap_newhv=0.5*(V_s+V_se_newhv*exp(j*rho(m)))*exp(j*-pi/3);
Pr_newhv(m)=real(V_r*exp(j*theta_r)*conj( I_r_newhv(m)));
Qr_newhv(m)=imag(V_r*exp(j*theta_r)*conj( I_r_newhv(m)));
I_s_newhv(m)=0.5*I_sh_newhv(m)*exp(j*gamma_newhv(m))*exp(j*pi/3)+sqrt(3)/n_t* I_r_newhv(m)*exp(j*-pi/6);
Ps_newhv(m)=real(V_s*conj(I_s_newhv(m)));
Qs_newhv(m)=imag(V_s*conj(I_s_newhv(m)));
Psh_newhv(m)=real(V_tap_newhv*conj(I_sh_newhv(m)*exp(j*gamma_newhv(m))));
Qsh_newhv(m)=imag(V_tap_newhv*conj(I_sh_newhv(m)*exp(j*gamma_newhv(m))));
Ssh_newhv(m) = sqrt(Psh_newhv(m)^2 + Qsh_newhv(m)^2);
Pse_newhv(m)=real(V_se_newhv*exp(j*rho(m))*conj(I_sh_newhv(m)));
Qse_newhv(m)=imag(V_se_newhv*exp(j*rho(m))*conj(I_sh_newhv(m)));
Sse_newhv(m) = sqrt(Pse_newhv(m)^2 + Qse_newhv(m)^2);
end
polarplot( (Psh_newhv – Pse_newhv)/Srate,LineWidth=2)
hold on
polarplot( Qs_newhv/Srate,LineWidth=2)
% Nonlinear constraint function
function [c, ceq] = myfun_newhv(x_newhv, rho)
V_s = 10*1e3/sqrt(3);
n_t = 25*sqrt(3);
V_r = 400/sqrt(3);
theta_r = pi/12;
Srate = 100*1e3/3;
Zbase = (V_r)^2/Srate;
X_r = 0.4*Zbase;
X_t = 400^2/(300*1e3)*4/100;
V_se_newhv = 0.2*V_s;
Z_r = 1i * X_r;
% Extract variables
gamma_newhv = x_newhv(1);
I_sh_newhv = x_newhv(2);
% Compute intermediate quantities
I_r_newhv=1/(Z_r+j*X_t)*(sqrt(3)*(V_s+V_se_newhv*exp(j*rho))*exp(j*pi/6)/n_t-V_r*exp(j*theta_r));
I_s_newhv=0.5*I_sh_newhv*exp(j*gamma_newhv)*exp(j*pi/3)+sqrt(3)/n_t* I_r_newhv*exp(j*-pi/6);
Qs_newhv=imag(V_s*conj(I_s_newhv));
V_tap_newhv=0.5*(V_s+V_se_newhv*exp(j*rho))*exp(j*-pi/3);
Psh_newhv=real(V_tap_newhv*conj(I_sh_newhv*exp(j*gamma_newhv)));
Pse_newhv=real(V_se_newhv*exp(j*rho)*conj(I_s_newhv));
% Constraints
% Nonlinear equality constraints
ceq = [ Psh_newhv – Pse_newhv;Qs_newhv];
c = [];
endI want to solve a system of equations containing two non-linear equations, one of which is Psh_newhv == Pse_newhv,the other is Qs_newhv==0, but solving it with the fmincon function doesn’t achieve the first constraint, how can I solve this problem?
% Given constants
V_s = 10*1e3/sqrt(3);
n_t = 25*sqrt(3);
V_r = 400/sqrt(3);
theta_r = pi/12;
Srate = 100*1e3/3;
Zbase = (V_r)^2/Srate;
X_r = 0.4*Zbase;
X_t = 400^2/(300*1e3)*4/100;
rho = 0:2*pi/72:2*pi;
V_se = 0.2*V_r;
V_se_newhv = 0.2*V_s;
Z_r = 1i * X_r;
% Initial guess
x0 = [0 0];
% Options for fmincon
options = optimoptions(‘fmincon’, ‘Algorithm’, ‘interior-point’, ‘Display’, ‘off’,’ConstraintTolerance’,1e-6);
% Constraints
lb = [];
ub = [];
% Solve for each rho
for m = 1:73
% Define the nonlinear constraint function
fun_newhv = @(x_newhv) myfun_newhv(x_newhv, rho(m));
% Use fmincon to solve the problem
[x_newhv, fval_newhv, exitflag_newhv(m), output_newhv] = fmincon(@(x_newhv) 0, x0, [], [], [], [], lb, ub, fun_newhv, options);
% Extract solutions
gamma_newhv(m) = x_newhv(1);
I_sh_newhv(m) = x_newhv(2);
I_r_newhv(m)=1/(Z_r+j*X_t)*(sqrt(3)*(V_s+V_se_newhv*exp(j*rho(m)))*exp(j*pi/6)/n_t-V_r*exp(j*theta_r));
V_tap_newhv=0.5*(V_s+V_se_newhv*exp(j*rho(m)))*exp(j*-pi/3);
Pr_newhv(m)=real(V_r*exp(j*theta_r)*conj( I_r_newhv(m)));
Qr_newhv(m)=imag(V_r*exp(j*theta_r)*conj( I_r_newhv(m)));
I_s_newhv(m)=0.5*I_sh_newhv(m)*exp(j*gamma_newhv(m))*exp(j*pi/3)+sqrt(3)/n_t* I_r_newhv(m)*exp(j*-pi/6);
Ps_newhv(m)=real(V_s*conj(I_s_newhv(m)));
Qs_newhv(m)=imag(V_s*conj(I_s_newhv(m)));
Psh_newhv(m)=real(V_tap_newhv*conj(I_sh_newhv(m)*exp(j*gamma_newhv(m))));
Qsh_newhv(m)=imag(V_tap_newhv*conj(I_sh_newhv(m)*exp(j*gamma_newhv(m))));
Ssh_newhv(m) = sqrt(Psh_newhv(m)^2 + Qsh_newhv(m)^2);
Pse_newhv(m)=real(V_se_newhv*exp(j*rho(m))*conj(I_sh_newhv(m)));
Qse_newhv(m)=imag(V_se_newhv*exp(j*rho(m))*conj(I_sh_newhv(m)));
Sse_newhv(m) = sqrt(Pse_newhv(m)^2 + Qse_newhv(m)^2);
end
polarplot( (Psh_newhv – Pse_newhv)/Srate,LineWidth=2)
hold on
polarplot( Qs_newhv/Srate,LineWidth=2)
% Nonlinear constraint function
function [c, ceq] = myfun_newhv(x_newhv, rho)
V_s = 10*1e3/sqrt(3);
n_t = 25*sqrt(3);
V_r = 400/sqrt(3);
theta_r = pi/12;
Srate = 100*1e3/3;
Zbase = (V_r)^2/Srate;
X_r = 0.4*Zbase;
X_t = 400^2/(300*1e3)*4/100;
V_se_newhv = 0.2*V_s;
Z_r = 1i * X_r;
% Extract variables
gamma_newhv = x_newhv(1);
I_sh_newhv = x_newhv(2);
% Compute intermediate quantities
I_r_newhv=1/(Z_r+j*X_t)*(sqrt(3)*(V_s+V_se_newhv*exp(j*rho))*exp(j*pi/6)/n_t-V_r*exp(j*theta_r));
I_s_newhv=0.5*I_sh_newhv*exp(j*gamma_newhv)*exp(j*pi/3)+sqrt(3)/n_t* I_r_newhv*exp(j*-pi/6);
Qs_newhv=imag(V_s*conj(I_s_newhv));
V_tap_newhv=0.5*(V_s+V_se_newhv*exp(j*rho))*exp(j*-pi/3);
Psh_newhv=real(V_tap_newhv*conj(I_sh_newhv*exp(j*gamma_newhv)));
Pse_newhv=real(V_se_newhv*exp(j*rho)*conj(I_s_newhv));
% Constraints
% Nonlinear equality constraints
ceq = [ Psh_newhv – Pse_newhv;Qs_newhv];
c = [];
end I want to solve a system of equations containing two non-linear equations, one of which is Psh_newhv == Pse_newhv,the other is Qs_newhv==0, but solving it with the fmincon function doesn’t achieve the first constraint, how can I solve this problem?
% Given constants
V_s = 10*1e3/sqrt(3);
n_t = 25*sqrt(3);
V_r = 400/sqrt(3);
theta_r = pi/12;
Srate = 100*1e3/3;
Zbase = (V_r)^2/Srate;
X_r = 0.4*Zbase;
X_t = 400^2/(300*1e3)*4/100;
rho = 0:2*pi/72:2*pi;
V_se = 0.2*V_r;
V_se_newhv = 0.2*V_s;
Z_r = 1i * X_r;
% Initial guess
x0 = [0 0];
% Options for fmincon
options = optimoptions(‘fmincon’, ‘Algorithm’, ‘interior-point’, ‘Display’, ‘off’,’ConstraintTolerance’,1e-6);
% Constraints
lb = [];
ub = [];
% Solve for each rho
for m = 1:73
% Define the nonlinear constraint function
fun_newhv = @(x_newhv) myfun_newhv(x_newhv, rho(m));
% Use fmincon to solve the problem
[x_newhv, fval_newhv, exitflag_newhv(m), output_newhv] = fmincon(@(x_newhv) 0, x0, [], [], [], [], lb, ub, fun_newhv, options);
% Extract solutions
gamma_newhv(m) = x_newhv(1);
I_sh_newhv(m) = x_newhv(2);
I_r_newhv(m)=1/(Z_r+j*X_t)*(sqrt(3)*(V_s+V_se_newhv*exp(j*rho(m)))*exp(j*pi/6)/n_t-V_r*exp(j*theta_r));
V_tap_newhv=0.5*(V_s+V_se_newhv*exp(j*rho(m)))*exp(j*-pi/3);
Pr_newhv(m)=real(V_r*exp(j*theta_r)*conj( I_r_newhv(m)));
Qr_newhv(m)=imag(V_r*exp(j*theta_r)*conj( I_r_newhv(m)));
I_s_newhv(m)=0.5*I_sh_newhv(m)*exp(j*gamma_newhv(m))*exp(j*pi/3)+sqrt(3)/n_t* I_r_newhv(m)*exp(j*-pi/6);
Ps_newhv(m)=real(V_s*conj(I_s_newhv(m)));
Qs_newhv(m)=imag(V_s*conj(I_s_newhv(m)));
Psh_newhv(m)=real(V_tap_newhv*conj(I_sh_newhv(m)*exp(j*gamma_newhv(m))));
Qsh_newhv(m)=imag(V_tap_newhv*conj(I_sh_newhv(m)*exp(j*gamma_newhv(m))));
Ssh_newhv(m) = sqrt(Psh_newhv(m)^2 + Qsh_newhv(m)^2);
Pse_newhv(m)=real(V_se_newhv*exp(j*rho(m))*conj(I_sh_newhv(m)));
Qse_newhv(m)=imag(V_se_newhv*exp(j*rho(m))*conj(I_sh_newhv(m)));
Sse_newhv(m) = sqrt(Pse_newhv(m)^2 + Qse_newhv(m)^2);
end
polarplot( (Psh_newhv – Pse_newhv)/Srate,LineWidth=2)
hold on
polarplot( Qs_newhv/Srate,LineWidth=2)
% Nonlinear constraint function
function [c, ceq] = myfun_newhv(x_newhv, rho)
V_s = 10*1e3/sqrt(3);
n_t = 25*sqrt(3);
V_r = 400/sqrt(3);
theta_r = pi/12;
Srate = 100*1e3/3;
Zbase = (V_r)^2/Srate;
X_r = 0.4*Zbase;
X_t = 400^2/(300*1e3)*4/100;
V_se_newhv = 0.2*V_s;
Z_r = 1i * X_r;
% Extract variables
gamma_newhv = x_newhv(1);
I_sh_newhv = x_newhv(2);
% Compute intermediate quantities
I_r_newhv=1/(Z_r+j*X_t)*(sqrt(3)*(V_s+V_se_newhv*exp(j*rho))*exp(j*pi/6)/n_t-V_r*exp(j*theta_r));
I_s_newhv=0.5*I_sh_newhv*exp(j*gamma_newhv)*exp(j*pi/3)+sqrt(3)/n_t* I_r_newhv*exp(j*-pi/6);
Qs_newhv=imag(V_s*conj(I_s_newhv));
V_tap_newhv=0.5*(V_s+V_se_newhv*exp(j*rho))*exp(j*-pi/3);
Psh_newhv=real(V_tap_newhv*conj(I_sh_newhv*exp(j*gamma_newhv)));
Pse_newhv=real(V_se_newhv*exp(j*rho)*conj(I_s_newhv));
% Constraints
% Nonlinear equality constraints
ceq = [ Psh_newhv – Pse_newhv;Qs_newhv];
c = [];
end fmincon, nonlinear equation MATLAB Answers — New Questions